多态:父类的引用指向子类的对象;
注意事项:
必须有继承,必须有重写
语法格式:父类 父类引用 = new 子类;
classFather{publicvoideat(){System.out.println("吃大盘鸡拌面");}}classSonextendsFather{@Overridepublicvoideat(){System.out.println("吃黄焖鸡");}publicvoidcar(){System.out.println("开大路虎");}}publicclassDemo01{publicstaticvoidmain(String[] args){Father father =newSon();
father.eat();//父类的引用指向子类的对象,无法调用子类独有的方法//father.car();}}
父类可以为抽象类也可以为接口
abstractclassFather{abstractvoideat();}classSonextendsFather{@Overridepublicvoideat(){System.out.println("吃黄焖鸡");}publicvoidcar(){System.out.println("开大路虎");}}publicclassDemo01{publicstaticvoidmain(String[] args){Father father =newSon();
father.eat();//父类的引用指向子类的对象,无法调用子类独有的方法//father.car();}}
interfaceFather{abstractvoideat();}classSonimplementsFather{@Overridepublicvoideat(){System.out.println("吃黄焖鸡");}publicvoidcar(){System.out.println("开大路虎");}}publicclassDemo01{publicstaticvoidmain(String[] args){Father father =newSon();
father.eat();//父类的引用指向子类的对象,无法调用子类独有的方法//father.car();}}
interfaceFather{abstractvoideat();}classSonimplementsFather{@Overridepublicvoideat(){System.out.println("吃黄焖鸡");}publicvoidcar(){System.out.println("开大路虎");}}publicclassDemo01{publicstaticvoidmain(String[] args){Father father =newSon();Son son =(Son) father;
son.car();}}
interfaceFather{abstractvoideat();}classSonimplementsFather{@Overridepublicvoideat(){System.out.println("吃黄焖鸡");}publicvoidcar(){System.out.println("开大路虎");}}publicclassDemo01{publicstaticvoidmain(String[] args){Father father =newSon();if(father instanceofSon){Son son =(Son) father;
son.car();}else{System.out.println("辈分出错了");}}}