每个方法里面都有两个隐式参数(this,super),this指向的是能直接调用该方法的对象,而super指向的是该方法所对应类的直接父类!每个构造器里面第一句隐式的调用了super(),也就是其直接父类的构造方法!继承在内存里面是包裹(wrap)结构!示例图如下:
继承如果从ooa和ood的角度分析:1.便于建模 2.类代码的复用(如果仅仅考虑代码复用则完全可以用组合代替)
组合复用代码途径就是将所复用代码的那个类属性的方式引进即可!
例如:
继承:
class a extends b{
}
组合:
class a{
b b1=new b(); //将所要复用的代码以属性方式引入即可
a a1=new a();
a1.b1.xxx(); //代码的复用【组合】
}
用final 修饰的属性不能重新定义,用final修饰的方法不能被重写但能重载,用final修饰的类不能被继承!