java 多态特性

来源:互联网 发布:js系列减速机加油标准 编辑:程序博客网 时间:2024/05/17 06:22
java 多态特性一。对象的多态特性1.引用多态   父类的引用可以指向本类的对象   父类的引用可以指向子类的对象
2.方法多态创建本类对象时,调用本类的方法创建子类对象时,调用的方法为子类的重写方法或者继承的方法(不能调用子类独有的方法)
public class Animal {     public void eat() {System.out.println("动物具有吃的能力");   }}
public class Dog extends Animal {public void eat() {System.out.println("狗吃肉");}    public void watchDoor() {System.out.println("狗看门");}}
package DuoTai;public class Cat extends Animal {}


public class Initial {public static void main(String[] args) {Animal obj1 = new Animal();Animal obj2 = new Dog();//Dog obj3 = new Animal() ; 错误:子类的引用不能指向父类的对象               obj1.eat();           obj2.eat();           //obj2.watchDoor(); 错误:不能调用子类独有的方法}}
输出结果:
二。引用类型转换
向上类型转化(隐式/自动)无风险
下类型转换                       有风险
利用 instanceof 运算符来避免运算符转换的安全性问题
public class Initial {public static void main(String[] args) {/*Animal obj1 = new Animal();Animal obj2 = new Dog();//Dog obj3 = new Animal();错误子类的引用不能指向父类的对象            obj1.eat();        obj2.eat();        //obj2.watchDoor(); 不能调用子类独有的方法*//** * 多态类型中的引用类型转换 */Dog dog = new Dog();Animal animal = dog;//向上类型转换Dog dog2 = (Dog) animal;  //向下类型转换(强制类型转换)if (animal instanceof Cat) {Cat cat = (Cat) animal; //编译时为cat类  ,运行为dog类   ,所以运行报错}else {System.out.println("无法进行类型转化!");}}}

输出结果:
 
原创粉丝点击