多态
例: 动物 接口 public interface AnimalDuotai { public void bank(); } 猫类 是动物接口的实现类 public class Cat implements AnimalDuotai{ public void bank(){ System.out.println("喵喵。。。"); } public void eat(){ System.out.println("吃鱼"); } } 狗类 是动物接口的实现类 public class Dog implements AnimalDuotai{ public void bank() { System.out.println("旺旺。。。"); } public void eat(){ System.out.println("吃骨头"); } } 动物测试类 public class AnimalTest { //动物叫声测试方法 public static void barkTest(AnimalDuotai a){ System.out.println("动物声音测试开始"); a.bank(); } public static void main(String[] args) { //接口是不能实例化与抽象类一样, //如果接口要实例化我们可以通过new一个接口的实现类对象 //赋值给这个接口对象 //一个子类对象的引用赋值给他的父类对象也可以,这也是多态 AnimalDuotai c=new Cat(); c.bank(); AnimalDuotai d=new Dog(); d.bank(); AnimalDuotai a=d;//引用类型自动转换 // Dog dd=(Dog)a;//AnimalDuotai(a)强制类型转换(a只能转换成Dog类型) if (a instanceof Dog) {//instanceof判断a是否是Dog类的实例 Dog dd=(Dog)a; }else { System.out.println("a对象不是Dog类的实例不能转换"); } AnimalTest.barkTest(c); } }

一个子类对象的引用赋值给他的父类对象也可以,这也是多态
避免子类重写父类方法(定义final、定义private)

浙公网安备 33010602011771号