thinking in java第三版读书笔记-第七章:多态性
来源:百度文库 编辑:神马文学网 时间:2024/04/20 01:04:38
第七章:多态性
1、“封装”通过将数据的特征与行为结合在一起,创建了一种新的数据类型。“隐藏实现”通过将细节设置成private,完成了接口与实现的分离。而多态性是站在“类”的角度来
处理这种逻辑上的分离的。
(chap7,P2)
2、“上传”使得类的动态性得以实现,但需要注意的是,只有基类是public的情况下,扩展类的复写才可以实现,比如下面的例子:
public class Test {
private void f() {
System.out.println("private f()");
}
public static void main(String[] args) {
Test po = new Derived();
po.f();
}
}
class Derived extends Test {
public void f() {
System.out.println("public f()");
}
}
例子中,Test.f是private的,所以Derived.f其实不是Test.f的复写,Derived.f是一个全新的方法,它连重载都算不上,因为Derived根本看不到基类的f()。
所以,输出的应该是private f(),而不是public f()。
(chap7,P12)
3、如果类包含一个或多个抽象方法,那么这个类必须定义为abstract,但如果类没有abstract方法,也可以将类定义为abstract。
(chap7,P13)
4、构造函数的调用顺序:
①调用基类的构造函数。这是一个递归过程,因此会先创建继承体系的根,然后是下一级派生类,依此类推,直到最后一个继承类的构造函数
②成员对象按照其声明的顺序进行初始化
③执行继承类的构造函数的正文。
其实,还不如这样表述表决方便:在一个类的初始化过程中,先按成员对象的声明顺序初始化这些成员变量,然后执行其构造函数;如果有基类,则先初始化基类。
(chap7,P17)
5、如果要内存清理,则可以从基类开始写一个函数,函数名可以自己定,但调用的时候,必须从顶层开始执行,这刚好与构造函数的调用顺序相反。
(chap7,P18)
6、开始做Java的时候,不要想着把整个程序做成一个类系,比较好的办法是合成。
(chap7,P23)
1、“封装”通过将数据的特征与行为结合在一起,创建了一种新的数据类型。“隐藏实现”通过将细节设置成private,完成了接口与实现的分离。而多态性是站在“类”的角度来
处理这种逻辑上的分离的。
(chap7,P2)
2、“上传”使得类的动态性得以实现,但需要注意的是,只有基类是public的情况下,扩展类的复写才可以实现,比如下面的例子:
public class Test {
private void f() {
System.out.println("private f()");
}
public static void main(String[] args) {
Test po = new Derived();
po.f();
}
}
class Derived extends Test {
public void f() {
System.out.println("public f()");
}
}
例子中,Test.f是private的,所以Derived.f其实不是Test.f的复写,Derived.f是一个全新的方法,它连重载都算不上,因为Derived根本看不到基类的f()。
所以,输出的应该是private f(),而不是public f()。
(chap7,P12)
3、如果类包含一个或多个抽象方法,那么这个类必须定义为abstract,但如果类没有abstract方法,也可以将类定义为abstract。
(chap7,P13)
4、构造函数的调用顺序:
①调用基类的构造函数。这是一个递归过程,因此会先创建继承体系的根,然后是下一级派生类,依此类推,直到最后一个继承类的构造函数
②成员对象按照其声明的顺序进行初始化
③执行继承类的构造函数的正文。
其实,还不如这样表述表决方便:在一个类的初始化过程中,先按成员对象的声明顺序初始化这些成员变量,然后执行其构造函数;如果有基类,则先初始化基类。
(chap7,P17)
5、如果要内存清理,则可以从基类开始写一个函数,函数名可以自己定,但调用的时候,必须从顶层开始执行,这刚好与构造函数的调用顺序相反。
(chap7,P18)
6、开始做Java的时候,不要想着把整个程序做成一个类系,比较好的办法是合成。
(chap7,P23)
thinking in java第三版读书笔记-第七章:多态性
thinking in java第三版读书笔记-第六章:复用类
thinking in java第三版读书笔记-第八章:接口与内部类
Thinking in Java第三版读书笔记-第四章:初始化与清理
thinking in java读书笔记(第七章) :重载,继承,重写和多态的区别
steam-《Thinking in Java》读书笔记(一)
Thinking in Java | Contents
Thinking in Java | Prewords
Thinking in Java | CHAPTER 1
读Thinking in Java (备忘)
Thinking in Java电子书下载
Thinking in Patterns with Java
Thinking in Java | CHAPTER 1
读Thinking in Java (备忘) - 我们不孤单 - CSDNBlog
对Java程序多态性支持的改进
对Java程序多态性支持的改进
VML教程 (Thinking in VML)
VML教程 (Thinking in VML)
《POJOS in Action》读书笔记
effective java读书笔记
JSF in Action读书笔记一
Patterns in Java
JSON in Java
[灌水]读书笔记:资本论第三卷