任务描述本关任务:
通过编程实例,掌握抽象类、接口的定义和使用。
抽象类的理解
如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就 是抽象类。
说明:在Java语言中使用abstract class来定义抽象类。
定义:
public abstract class 类名{}
编程要求
Apple,Banana,Pear,Fruit,DynamicBind五个类的文件已创建好,现在需要根据以下要求,补全这五个类中的代码。
- 定义抽象类Fruit,拥有抽象方法show()和成员brand
- 定义Apple,Banana和Pear三个类,都分别继承了抽象类Fruit,实现了方法show()去输出水果的品牌(brand)
- 在类DynamicBind中定义Fruit的一个引用,分别赋予三个子类对象,并查看效果(顺序为Apple,Pear,Banana)。
这三个对象中的品牌分别是(“红富士苹果”,“香梨”,“仙人蕉”)
Fruit类
package step1;
public abstract class Fruit {
protected String brand;
public abstract void show();
}
Apple类
package step1;
public class Apple extends Fruit{
public Apple(){
this("黄金苹果");
}
public Apple(String brand){
this.brand=brand;
}
public void show() {
System.out.println("Apple:"+brand);
}
}
Pear类
package step1;
public class Pear extends Fruit{
public Pear(){
this("水晶梨");
}
public Pear(String brand){
this.brand=brand;
}
public void show() {
System.out.println("Pear:"+brand);
}
}
Banana类
package step1;
public class Banana extends Fruit{
public Banana(){
this("千层蕉");
}
public Banana(String brand){
this.brand=brand;
}
public void show() {
System.out.println("Banana:"+brand);
}
}
DynamicBind类
package step1;
public class DynamicBind {
public static void main(String[] args) {
Fruit f=new Apple("红富士苹果");
f.show();
f=new Pear("香梨");
f.show();
f=new Banana("仙人蕉");
f.show();
}
}