Java继承与访问权限问题总结

/**
	子类的继承与父类成员构造方法的初始化
	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;
    }
}

你可能感兴趣的:(java学习笔记)