Java上转型、隐藏、覆盖与动态绑定
2013-09-26 20:26
260 查看
对象的上转型即声明一个父类类型的变量,但将子类的实例赋给了它。或叫父类变量指向了子类对象。有什么意义呢?因为子类是对父类的改进和扩充,所以一般子类在功能上较父类更强大,属性较父类更独特。定义一个父类类型的引用指向一个子类的对象既可以使用子类更强大的功能,又可以抽取父类的共性。
例如:
对于成员,如果父类有,子类没有,则子类继承;如果父类没有,子类有,则属于子类增加的;
如果父类子类都有,便属于隐藏或覆盖。其中对于成员变量和静态方法,属于隐藏;对于实例方法,属于覆盖。
一般的,子类对象调用子类的成员,父类对象调用父类的成员。但对于上转型的对象,则调用成员变量和静态方法时,调用的是父类的,因此叫隐藏成员变量和静态方法。
对于成员变量和静态方法,子类的隐藏父类的。上转型对象引用的是父类的。
对于实例成员方法,子类覆盖父类的。上转型对象引用的是子类的。这种方式称为动态绑定。
例如:
People p1=new Student();//赋值相容,上转型,子类对象即是父类对象 Student s1=new People();//赋值不相容,编译错误,父类对象不是子类对象
对于成员,如果父类有,子类没有,则子类继承;如果父类没有,子类有,则属于子类增加的;
如果父类子类都有,便属于隐藏或覆盖。其中对于成员变量和静态方法,属于隐藏;对于实例方法,属于覆盖。
一般的,子类对象调用子类的成员,父类对象调用父类的成员。但对于上转型的对象,则调用成员变量和静态方法时,调用的是父类的,因此叫隐藏成员变量和静态方法。
对于成员变量和静态方法,子类的隐藏父类的。上转型对象引用的是父类的。
对于实例成员方法,子类覆盖父类的。上转型对象引用的是子类的。这种方式称为动态绑定。
相关文章推荐
- Java 类总结(多态,静态绑定,动态绑定,重写,覆盖,隐藏)
- Java学习之面向对象(1.Object类,(1)toString方法,(2)equals方法,2.对象转型(casting),3.动态绑定与多态,4.抽象类(abstract),5.Final关键字)
- Java动态(后期)绑定和overloading 向上转型
- 向上转型:动态绑定--[Java]
- Java动态(后期)绑定和overloading 向上转型
- java动态绑定与转型
- Java学习资料-方法覆盖、方法重载、多态与动态绑定
- JAVA中几个易混淆关键词的理解:行为,隐藏,组合和继承,覆写和重载,多形(多态)性,动态绑定,上溯造型,抽象类,接口
- Java面向对象8——对象转型,动态绑定,抽象类,final关键字及接口
- Java动态(后期)绑定和overloading 向上转型
- Java 基础(8)—— 向上转型、向下转型、动态绑定、静态绑定
- Java动态(后期)绑定和overloading 向上转型
- Java静态绑定与动态绑定 隐藏 多态
- Java方法的静态绑定与动态绑定讲解(向上转型的运行机制详解)
- Java域隐藏、静态方法隐藏、动态绑定、静态绑定
- Java动态(后期)绑定和overloading 向上转型
- JAVA中几个易混淆关键词的理解:行为,隐藏,组合和继承,覆写和重载,多形(多态)性,动态绑定,上溯造型,抽象类,接口
- Java动态(后期)绑定和overloading 向上转型
- java动态绑定静态绑定
- Java动态绑定机制详解