/**
子类的继承与父类成员构造方法的初始化
1.父类所有成员变量和方法被子类完全继承
但访问权限为private的成员变量和方法被禁止,
可以使用权限为非private的getter与setter操作
2.如果子类存在非private可访问的同名父类成员,那么可以在子类中使用 super.来调用
3.访问权限
private 自身
default 自身 包内(包内子类可访问,包外子类不可访问)
protected 自身 包内 子类
public 自身 包内 子类 包外
4.构造方法可以使用this()调用自身的其他构造方法 实现对父类构造方法的调用
例 :B(){this(33,44,55);}
5.父类中的this指向实际被创建的对象,如果被创建的是子类对象,那么父类对象中的this便指向实际被创建的子类对象
6. 如果父类方法被子类重写,那么在实例化的子类对象中,父类内部调用自身类的方法,那么将调用被子类重写的方法
*/
class A{
private int a1;
private int a2;
A(){}
A(int a1,int a2){
this.a1 = a1;
this.a2 = a2;
}
public void setA1(int a1) {
this.a1 = a1;
}
public void setA2(int a2) {
this.a2 = a2;
}
public int getA1() {
return a1;
}
public int getA2() {
return a2;
}
}
class B extends A {
private int b1;
//如果父类不存在空参构造方法那么子类也不应该存在空参构造方法
B(){}
B(int a1,int a2,int b1){
super(a1,a2); //调用父类构造方法
this.b1 = b1;
}
public void setB1(int b1) {
this.b1 = b1;
}
public int getB1() {
return b1;
}
}
网友评论