您的位置:首页 > 编程语言 > Java开发

关于java继承与多态的深入理解

2014-05-20 12:55 585 查看

关于java继承与多态的深入理解

博客地址:http://blog.csdn.net/tianhen791/article/details/26358591

0. Private变量和方法不能被继承。

1. 可以让一个父类的引用parent指向一个子类的对象sub, 在执行parent.method(),会调用子类的方法,前提是这个方法在父类和子类中共存,即被子类覆盖,如果不是共存会出现编译错误。

2.对于静态成员变量、常量,静态方法,都是根据句柄的类型来调用的;包括让一个父类的引用parent指向一个子类的对象sub,parent.method()是调用父类的变量和方法。所以在调用静态方法或者静态变量用类名比较好理解。

3.属性的隐藏:当子类和父类中有连个相同名字的变量,一个来自父类的继承,另一个由自己定义,当子类执行父类的操作时,处理的是继承自父类的变量,当子类执行自己定义的方法时,所操作的就是它自己定义的变量。

4. 对于非private的成员变量,都是根据句柄的类型来调用的。

总结: 变量是按句柄来访问的(private的成员变量不能直接访问);

静态方法是按句柄来调用的;

非静态方法是按所指向的对象的来调用的;

另外注意属性的隐藏。

进一步浓缩理解: 只需要分析句柄与所指向的对象不一致时,才需要分析, 如何分析,对于变量按句柄,对于方法,看是否是静态方法还是非静态方法。另外需要注意属性的隐藏。属性的隐藏是出现在调用方法时。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: