/*
描述:汽车都具有跑的功能,普通的奥迪车也不例外,但是高端的奥迪车除了具有跑的功能外,还具有自动泊车和无人驾驶的功能!
需求:定义普通奥迪车,高端奥迪车,实现描述中的功能并测试一下开发步骤,仅供参考:
(1)编写一个抽象类Car
(a)包含三个属性brand(品牌)、color(颜色)、price(价格)
(b)提供空参有参构造,set和get方法
(c)定义一个抽象方法run();//车行驶的方法
(2)定义一个普通的奥迪汽车类,AudiCar
(a)继承Car
(b)重写run()方法,方法中打印一句话,要求打印汽车的品牌、颜色、价格
(3)定义两个接口
(a)无人驾驶接口,名称为"NoPersonDriving",包含一个抽象方法noPersonDrive();//无人驾驶方法
(b)自动泊车功能接口,名称为"自动泊车功能",包含一个抽象方法autoStopCar();//自动泊车方法
(4)定义高端奥迪车类AudiSuperCar
(a)继承AudiCar
(b)实现无人驾驶接口和自动泊车接口
(5)定义测试类Car_Polymorphic
(a)创建普通的奥迪车,并测试
(b)创建高端奥迪车,并测试
思路:
①先根据需求打好程序结构,从上到下依次为:测试类、接口、父类抽象类、子类、子类的子类;
②创建键盘录入对象,用于接收键盘录入的数据;
③在汽车抽象类中定义品牌、颜色和价格三个属性,与一个汽车行驶的抽象方法;
④在普通奥迪车类中汽车行驶的方法;
⑤在高端奥迪车类中重写汽车行驶的方法和接口中的抽象方法;
⑥定义一个展示汽车行驶的方法;
⑦创建对象调用方法,输入数据并打印输出结果。
*/
//导包。
import java.util.Scanner;
//汽车测试类。
class CarPolymorphic{
public static void main(String[] args){
Scanner sc = new Scanner(System.in); //创建键盘录入对象。
System.out.println("请输入车的品牌:");
String brand = sc.nextLine(); //输入品牌。
System.out.println("请输入车的颜色:");
String color = sc.nextLine(); //输入颜色。
System.out.println("请输入车的价格:");
int price = sc.nextInt(); //输入价格。
Car c = new AudiCar(); //创建父类引用指向子类对象。
AudiSuperCar asc = new AudiSuperCar(); //创建父类引用指向子类对象。
show();
}
public static void show(Car c){ //定义展示车行驶的方法。
c.run();
c.run();
}
}
//无人驾驶接口。
interface NoPersonDriving{
public abstract void noPersonDrive(); //无人驾驶方法。
}
//自动泊车功能接口。
interface AutoStoping{
public abstract void autoStopCar(); //自动泊车方法。
}
//汽车抽象类。
abstract class Car{
private String brand; //定义品牌。
private String color; //定义颜色。
private int price; //定义价格。
public Car(){} //空参构造。
public Car(String brand, String color, int price){ //有参构造。
this.brand = brand;
this.color = color;
this.price = price;
}
public abstract void run(); //车行驶的方法。
public void setBrand(String brand){ //设置品牌。
this.brand = brand;
}
public String getBrand(){ //获取品牌。
return brand;
}
public void setColor(String color){ //设置颜色。
this.color = color;
}
public String getColor(){ //获取颜色。
return color;
}
public void setPrice(int price){ //设置价格。
this.price = price;
}
public int getPrice(){ //获取价格。
return price;
}
}
//普通的奥迪汽车类,
class AudiCar extends Car{
public AudiCar(){} //空参构造。
public AudiCar(String brand, String color, int price){ //有参构造。
super(brand, color, price);
}
public void run(){ //重写车行驶的方法。
System.out.println(this.getBrand()+"车飞快奔驰。");
System.out.println("车的品牌是:"+this.getBrand()+";\n"+"车的颜色是:"+this.getColor()+";\n"+"车的品牌是:"+this.getPrice()+"。\n");
}
}
//高端奥迪车类。
class AudiSuperCar extends AudiCar implements NoPersonDriving, AutoStoping{
public AudiSuperCar(){} //空参构造。
public AudiSuperCar(String brand, String color, int price){ //有参构造。
super(brand, color, price);
}
public void noPersonDrive(){ //重写无人驾驶方法。
System.out.println(this.getBrand()+"启动无人驾驶功能。");
}
public void autoStopCar(){ //重写自动泊车方法。
System.out.println(this.getBrand()+"启动自动泊车功能。");
}
public void run(){ //重写车行驶的方法。
System.out.println(this.getBrand()+"车飞快奔驰。");
System.out.println("车的品牌是:"+this.getBrand()+";\n"+"车的颜色是:"+this.getColor()+";\n"+"车的品牌是:"+this.getPrice()+"。\n");
}
}
|