码迷,mamicode.com
首页 > 编程语言 > 详细

java多态演示

时间:2016-01-22 18:27:18      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:interface   abstract   public   java   关键字   

/*
多态测试
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();
        }
    }    
}


本文出自 “司马囧” 博客,谢绝转载!

java多态演示

标签:interface   abstract   public   java   关键字   

原文地址:http://9274590.blog.51cto.com/9264590/1737633

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!