多态:
父类引用指向子类对象,即创建一个子类对象让父类进行接收,生成的对象可以调用父类的方法,但是当子类中存在与父类相同的方法时发生覆盖现象;如果想要调用子类特有的方法时需要向下转型,即将父类强制转化为子类然后对子类方法进行调用。
class Animal{ private String name; private String sounds; public Animal(){ this.name="animal"; this.sounds="+++++"; } public Animal(String name,String sounds){ this.name=name; this.sounds=sounds; } public String getName() { return name; } public String getSounds() { return sounds; } public void Sound(){ System.out.println("Animal Sound"+","+name+","+sounds); } } class Dog extends Animal{ public Dog(){ super("xiaogou","wangwang"); } public void Kanjia(){ System.out.println("Dog Kanjia"+","+getName()+"," +getSounds()); } } class Cat extends Animal{ public Cat(){ super("xiaomao","miaomiao"); } public void Sound(){ System.out.println("Cat Sound"+","+getName()+"," +getSounds()); } } public class MainDemo { public static void main(String[] args) { // TODO Auto-generated method stub Animal a=new Animal(); System.out.println("Animal:"); a.Sound(); Animal d=new Dog(); System.out.println("Dog:"); d.Sound(); Dog dd=(Dog)d; dd.Kanjia(); Animal c=new Cat(); System.out.println("Cat:"); c.Sound(); } }
Animal: Animal Sound,animal,+++++ Dog: Animal Sound,xiaogou,wangwang Dog Kanjia,xiaogou,wangwang Cat: Cat Sound,xiaomao,miaomiao
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215216.html原文链接:https://javaforall.net
