您的位置:首页 > 编程语言 > Java开发

java多态演示

2016-01-22 15:13 513 查看
/*
多态测试
1.前提
类和类必须是继承或者实现关系,方法之间一般会被覆盖
2.作用
提高代码扩展性
3.弊端
当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子类中特有的方法。
访问子类特有方法需要通过instanceof关键字判断
4.体现
父类引用或者接口的引用指向了自己的子类对象.向上转型和向下转型
*/
abstract interface Animal{
abstract void eat();
}

class Dog implements Animal{
public void eat(){
System.out.println("吃狗粮");
}
public void hunt(){
System.out.println("狩猎");
}
}

class Cat implements Animal{
public void eat(){
System.out.println("吃猫粮");
}
public void catchFish(){
System.out.println("抓鱼");
}

}
class DuoTaiDemo{
public static void main(String[]args){
function(new Cat());//等于Animal a = new Cat();将子类提升到父类,向上转型
}

public static void function(Animal a){
a.eat();
if(a instanceof Cat){
Cat c = (Cat)a;//将父类的引用转为子类对象
c.catchFish();
}else if(a instanceof Dog){
Dog d = (Dog)a;//将父类的引用转为子类对象
d.hunt();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  abstract interface public