目录
第1关:Fruit类
Apple :
package step1;
class Apple extends Fruit{
public Apple(String brand){
super(brand);
}
public void show(){
System.out.println("Apple:"+getBrand());
}
}
Banana :
package step1;
class Banana extends Fruit{
public Banana(String brand){
super(brand);
}
public void show(){
System.out.println("Banana:"+getBrand());
}
}
DynamicBind :
package step1;
public class DynamicBind {
public static void main(String[] args) {
/*********begin*********/
//定义Fruit的一个引用,分别赋予三个子类对象,顺序为Apple,Pear,Banana
Fruit a = new Apple("红富士苹果");
Fruit p = new Pear("香梨");
Fruit b = new Banana("仙人蕉");
a.show();
p.show();
b.show();
/**********end*********/
}
}
Fruit :
package step1;
public abstract class Fruit{
private String brand;
public void setBrand(String brand){
this.brand = brand;
}
public String getBrand(){
return brand;
}
public Fruit(){}
public Fruit(String brand){
this.brand = brand;
}
public abstract void show();
}
Pear :
package step1;
class Pear extends Fruit{
public Pear(String brand){
super(brand);
}
public void show(){
System.out.println("Pear:"+getBrand());
}
}
第2关:防盗门
Alarm :
package step2;
public interface Alarm{
public void alarm();
}
AlarmGuardDoor :
package step2;
class AlarmGuardDoor extends Door implements Guard,Alarm{
public void open(){
System.out.println("芝麻开门");
}
public void alarm(){
System.out.println("刮风下雨收衣服了");
}
public void guard(){
System.out.println("防盗效果好");
}
public void close(){
System.out.println("芝麻关门");
}
}
Door :
package step2;
public abstract class Door{
public abstract void open();
public abstract void close();
}
Guard :
package step2;
public interface Guard{
static int numofUse = 10;
public void guard();
}
InterfaceDemo :
package step2;
public class InterfaceDemo extends AlarmGuardDoor{
public static void main(String[] args) {
/*********begin*********/
//类AlarmGuardDoor实例化,并调用AlarmGuardDoor类中的所有方法。调用的顺序:open(),alarm(),guard(),close()
AlarmGuardDoor a = new AlarmGuardDoor();
a.open();
a.alarm();
a.guard();
a.close();
/*********end*********/
}
}