多态向上转型与向下转型(多态:方法返回值、方法形参)

向上转型:

        父类型  引用变量名 =  new  子类型();

        Pet pet = new Dog();

此时父类的引用变量只能调用子类继承的和重写的方法,不是父类特有的方法(构造方法与private修饰的方法),子类特有的方法无法调用!父类特有的方法无法调用!!   注意事项:静态方法可以被继承,但无法重写!即使方法名等全一致,也不算重写,不过会被覆盖(声明并创建为子类对象时,调用的是子类的相同的方法)!

向下转型:(可调用子类特有的方法,且体现多态 ( 可调用继承与重写的方法  ))

        将指向子类对象的父类引用赋给一个子类的引用,即父类类型转换为子类类型!(需强制类型     转换)

                        Pet pet = new Dog();//前提条件

                        if(pet  instanceof  Dog ){//避免出现向下转型异常

                                Dog dog = (Dog)pet;

                        }

多态向上转型与向下转型(多态:方法返回值、方法形参)_第1张图片
继承
多态向上转型与向下转型(多态:方法返回值、方法形参)_第2张图片
类型转换

你可能感兴趣的:(多态向上转型与向下转型(多态:方法返回值、方法形参))