抽象类、多态的使用

现在有一个抽象类:电脑类 Computer

抽象方法:特点优势 advantage()  

台式机DesktopComputer 继承电脑类

重写方法:advantage() ,价格实惠,性价比高。

笔记本LaptopComputer,继承电脑类

重写方法:advantage() ,便携、轻巧。

商务笔记本BusinessLaptop 继承笔记本类

重写advantage方法,高端大气、轻薄、续航时间长

游戏本GameLaptop 继承笔记本类

重写advantage方法,高配置、性能强、大型游戏不卡顿

商场类 Shop

成员变量:String[]  types, 数组,记录不同的电脑类型

方法: setTypes(String[] types),对成员变量types进行赋值。

方法: showComputer(),显示商场中的电脑类型(types)。

方法:chooseComputer(String type) 根据类型不同 ,输出对应的电脑的优势是什么

[switch case 或者 if else ] [在该类中,需要对不同电脑的类进行实例化,然后调用advantage方法上转型对象]

主类MainClass,创建商场的实例化对象,

调用setTypes方法,初始化商场中的电脑类型types:台式机 笔记本 商务笔记本 游戏本等等,将shop中的types数组进行赋值: { "台式机", "笔记本", "商务笔记本", "游戏本" },

调用showComputer输出商场里有哪些类型的电脑。

提示用户选择哪种电脑。根据用户输入的类型,输出对应的电脑的优势是什么。

参考代码:

获取用户输入的字符串:

Scanner scan = new Scanner(System.in);

String type = scan.nextLine();

package shiyan_09;
import java.util.*;
public class MainClass {

	public static void main(String[] args) {
		Shop shop = new Shop();
		String[] a = {"台式机", "笔记本", "商务笔记本", "游戏本"};
		shop.setTypes(a);
		shop.showComputer();
		System.out.println("请输入选择的电脑类型:");
		Scanner scan = new Scanner(System.in);
		String type = scan.nextLine();
		shop.chooseComputer(type);
	}

}
package shiyan_09;

public class BusinessLaptop extends Computer{//商务笔记本
	void advantage() {
		System.out.println("高端大气、轻薄、续航时间长。");
	}
}
package shiyan_09;

public abstract class Computer {
	abstract void advantage();
}
package shiyan_09;

public class DesktopComputer extends Computer{//台式机
	void advantage() {
		System.out.println("价格实惠,性价比高。");
	}
}
package shiyan_09;

public class LaptopComputer extends Computer {//笔记本
	 void advantage() {
		 System.out.println("便携、轻巧。");
	}
}
package shiyan_09;

public class Shop {
	String[] types;
	DesktopComputer desktopComputer = new DesktopComputer();
	LaptopComputer laptopComputer = new LaptopComputer();
	BusinessLaptop businessLaptop = new BusinessLaptop();
	GameLaptop gameLaptop = new GameLaptop();
	public void setTypes(String[] types) {
		this.types = types;
	}
	public void showComputer() {
		System.out.println("商场里的电脑有:");
		for(int i=0;i<4;i++) {
			System.out.print(types[i]+"   ");
		}
		System.out.println();
	}
	public void chooseComputer(String type) {
		if (type.equals("台式机")) {
			desktopComputer.advantage();
		}
		else if(type.equals("笔记本")) {
			laptopComputer.advantage();
		}
		else if(type.equals("商务笔记本")){
			businessLaptop.advantage();
		}
		else if(type.equals("游戏本")){
			gameLaptop.advantage();
		}
		else {
			System.out.println("错误。");
		}
	}
}

你可能感兴趣的:(java基础学习,java)