论坛首页 编程语言技术论坛

继承是所有OOP语言不可缺少的组成部分

浏览 1131 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2012-05-25  
当创建一个类时,总是在继承,因此,除非明确指出要从其他类继承,否则都隐式的从JAVA标准根类Object进行继承.
继承使用extends关键字实现, 当这么做的时候, 会自动得到基类中所有的域和方法.
那么,对于继承,是否会继承private的属性,private的方法呢? 看下面的Cleanser类(主要就是测试是否继承private属性):
通过设置断点, 我们可以很容易的看出, 在Deter d = new Deter();的时候, 他里面自动的包含了Cleanser的所有属性,
包括private属性, 但是我们并不能调用private属性. 这是因为private修饰的只能在本类中使用.
private的方法呢?现在还无法证明,它是否被继承,不过有一点是明确的, 他无法被子类调用.
继承时的初始化顺序
在前面也提到了继承时的初始化顺序
1.当父类有静态事物时, 子类没有 ParentFirst和ChildFirst
(1)先执行父类静态
(2)执行父类成员变量或者语句块的初始化
(3)执行父类构造
(4)执行子类成员变量或语句块
(5)执行子类构造
2.当父类没有静态事物, 子类有. ParentSecond和ChildSecond
(1)执行子类静态
(2)执行父类成员变量或者语句块初始化
(3)执行父类构造
(4)执行子类成员变量或者语句块
(5)执行子类构造
3.当父类和子类同时有静态事物 ParentThird和 ChildThird
(1)执行父类静态
(2)执行子类静态
(3)执行父类成员变量或者语句块
(4)执行父类构造
(5)执行子类成员变量或者语句块
(6)执行子类构造
4.父类和子类同时没有静态事物 ParentFourth和ChildFourth
(1)执行父类成员变量或者语句块
(2)执行父类构造
(3)执行子类成员变量或者语句块
(4)执行子类构造
转载自蚂蚁博客:http://www.538538.net
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics