JAVA特性
封装、继承、多态需要真正的理解,知道如何正确的运用。思考…
代码
// 父类
public class Animal {
public void eat() {
System.out.println("this is animal eat......");
}
}
// 子类
public class Bird extends Animal {
@Override
public void eat() {
System.out.println("this is bird eat......");
}
public void fly(){
System.out.println("this is bird fly......");
}
}
public static void main(String[] args) {
//向上转型
Animal animal = new Bird();
animal.eat();
//向上转型 丢失子类特有方法
//向下转型获取子类方法(向下转型需要先向上转型)
Bird bird = (Bird) animal;
bird.eat();
bird.fly();
//运行结果
// this is bird eat......
// this is bird eat......
// this is bird fly......
}
小心上面代码中的 Bug;我只知道这些代码是正确的,但没有试过。