super和访问权限修饰符
super()方法
构造方法中的super关键字
在java子类的构造方法中可以通过super关键字来调用父类的构造方法
super();访问父类中的无参构造函数
super(...)访问父类中的成员方法
super()来调用父类午餐的构造方法中,但即使不适用super()默认也会调用父类的构造方法,父类无参构造方法是可以自动以的无惨构造方法,也可以是编译器自动生成的默认构造方法,但如果父类中定义了有参构造方法,但是没有定义无惨的构造方法,这时候编译器不会生成默认的构造函数,也就不能通过super来调用构造方法,如果父类中定义了private的午餐构造方法,也不能通过super来调用
非构造方法中的super关键字
在子类中可以通过super关键字来调用父类中的成员变量和方法
super.eat;访问父类中的成员变量
super.aa();访问父类中的成员函数aa
super关键字访问父类的成员变量和成员函数时不能越过访问权限的控制,不能访问父类中private的成员变量和方法
比如:
class a{
private int a = 0;
}
class b extendx a{
private void seta(int i)
super.a = 0;这是错误的不可以访问父类的private成员
}
在有多层的继承关系,super调用只能自身父类的成员变量和方法,不能越过父类直接调用父类的父类中的成员变量或方法
定义:在Java中,针对类、成员方法和属性提供了四种访问级别,分别是private、default、protected和public。
private当前类访问级别:如果类的成员被private访问控制符来修饰,则这个成员只能被该类的其他成员访问,其他的类无法直接访问,封装就是他通过private关键字来实现的
default 包访问级别:如果一个雷或者类的成员不适用任何王文控制符修饰,则称他为默认访问控制级别,这个类或类的成员只能被本中的其他类访问
protecte子类访问级别:如果一个雷的成员被protecte访问修饰符修饰,那么这个成员既能被统一报下的其他类访问,也可以被不同的报下的类访问
public 公共访问级别:这是一个最宽松的访问控制级别,如果一个类或者类的成员被public访问修饰符修饰,那么这个类或类的成员能被所有的类访问