一. 访问修饰符
访问修饰符 | 本类 | 同包 | 子类 | 其他 |
---|---|---|---|---|
private | √ | |||
默认 | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
-
private本类可以访问
public全部可以访问
没写访问修饰符的就是默认修饰符 -
子类如果要使用父类的protected属性
可以不需要new,子类直接使用父类的属性
也可以使用new实例化再使用
二. 无参构造方法
调用子类无参构造方法之前会先自动执行父类无参构造。
三. static代码块
static {
System.out.println("static");
}
执行如下代码
package LibraryManage;
public class test {
static {
System.out.println("static");
}
public test(){
System.out.println("构造方法");
}
public static void main(String[] args) {
new test();
}
}
运行结果
在执行构造方法时,先执行static代码块,如果多次执行构造构造方法,则static只有第一次执行
2. 在代码中加入如下代码块:
{
System.out.println("普通代码块");
}
上面的代码是普通代码块
静态代码块:在第一次执行,永远只执行一次。 用处:初始化
普通代码块:在每次执行无参构造之前执行。
- 如果父类和子类都含有static代码块和普通方法块,当子类执行无参构造时,执行情况如下:
四. 方法重载和重写
重载:方法名相同,参数列表不同(与返回值无关,与参数名无关,与参数类型有关)
重写:父类有一个方法,子类重新写了一遍,在子类中执行时,执行子类的方法(一般发生在子类和父类的继承关系中)
要求
1 方法名相同
2 参数列表也相同
3 几个重写的方法返回值只能相同或者是其子类
4 访问修饰符不能比父类更严格
5 构造方法不能被重写