1.组合
在类中引用新类
2.继承
判断是否使用继承:需要向上转型的时候
在继承后引用构造子类时,会先调用基类的构造器,如果基类无构造器,则会为你合成一个默认构造器
继承中的覆盖(重写)
3.代理
package chapter7;
//使用代理
public class Ster{
private Degetent d=new Degetent();
public void scrub() {
// TODO Auto-generated method stub
d.scrub();
}
public void sterilize(){
System.out.println("sterilize");
}
public static void main(String[] args) {
Ster s=new Ster();
s.scrub();
s.sterilize();
}
}
class Degetent {
public void scrub(){
System.out.println("scrub");
}
}
清理
先构造父类,再构造子类,先清理子类,在清理父类
@Override 用于防止重载
关于访问权限:public>protected>包访问权限>private
向上转型:
package chapter7;
//向上转型
public class Frog extends Amphibian{
public static void main(String[] args) {
Frog f=new Frog();
tune(f);
}
}
class Amphibian{
static void tune(Amphibian a){
System.out.println("Amphibian");
}
}
final关键字:
static final 编译时常量
final 常量
static final 不可以引用另一个对象 ???但final可通过引用另一对象改变值
继承的初始化:
父类static方法->子类static方法->父类构造器->子类构造器->子类方法