Thinking in java 个人总结
Ø 对象即可以作为它自身的对象使用,也可以作为它的父类型使用,子类向上转型会“缩小”接口
Ø 除了static和final方法,其他方法都是后期绑定(动态绑定)
Ø Shape s=newCircle(),s.draw();由于后期绑定(动态)还是会正确调用Circle.draw()方法。
Ø 父类中的private方法会被自动认为final,对于子类是隐藏的,就是说如果自类有一个和父类相同的想法也不会覆盖父类的方法,子类的方法将是一个全新的方法
Ø 如果某个方法是静态的,它的行为就不具有多态性协变类型
Ø 协变返回类型:导出类(子类)覆盖(即重写)基类(父类)方法时,返回的类型可以是基类方法返回类型的子类。
Ø class Person{
public Flower buy(){
System.out.println("Flower...");
return new Flower();
}
}
class Boy extends Person{
public RoseFlower buy(){
System.out.println("RoseFlower...");
//注意这里,这里就是协变返回类型
//导出类**(子类)覆盖(即重写)**基类**(父类)方法时,
// 返回的类型可以是基类方法返回类型的子类
return newRoseFlower();
}
}
Ø 包含抽象方法的类称为抽象类,若含有抽象方法则该类必须声明为抽象类,抽象类不能被实例化只能被继承,继承抽象类的自类需实现抽象类的所有抽象方法,否则子类也必须声明为抽象类
Ø 接口:interface,类似于class 可以限制访问权限,如果不加默认是包内访问权限,接口中的方法默认为public,接口中的成员默认static&final,类使用implements来实现接口,实现其中的方法
Ø 耦合性:系统结构中各个模块相互联系紧密程度的一个度量,模块之间联系越紧密,其耦合性越强,模块的独立性越差
Ø 内聚性:模块内部各个元素彼此结合的紧密程度,结合越紧密内聚性越强,当代程序要求高内聚,低耦合
Ø 完全解偶:尽最大的可能降低程序的耦合性
Ø 多重继承:java中一个类不支持继承多个类,但是可以继承多个接口,如 class aextends b implements c,d,e
在打算组合的不同接口中使用相同的方法名容易造成代码可读性混乱,应该避免这种情况。