标签: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(); } } }
本文出自 “司马囧” 博客,谢绝转载!
标签:interface abstract public java 关键字
原文地址:http://9274590.blog.51cto.com/9264590/1737633