day07
方法重写
1)重写发生在子父类当中
2)方法名、参数列表、返回值均相同
3)重写的方法,方法体或者访问控制修饰符不同
4)子类方法的访问权限不能缩小,比如父类是int,子类重写权限不能是byte
重写和重载的区别、重写重载的特点
都是把重写重载特点都写出来
如果子类重写了父类的方法,在调用时会调用已重写的方法
super关键字特点
1)用在子类的构造方法中
2)不论写不写super(),java都会默认使用super()调用父类的构造方法
3)只能通过super()调用父类的构造方法一次
4)通过super()调用父类的构造方法,必须放在子类构造方法的第一行
this表示当前类对象
super表示当前类的父类对象
在子类构造方法,不论写不写super(),Java都会默认使用super()调用父类的构造方法
super();调用父类构造方法
super.方法名();//调用父类成员方法
创建一个子类对象的加载顺序
1)创建一个父类对象-后创建子类对象
2)先父类构造方法,后子类构造方法
public Father(){
//super();//表示调用父类的构造方法
this("zs");//调用类另一个有参构造
}
public Son(String name){
}
static关键字
静态、全局的
被修饰的方法或变量可以通过类名调用,不需要实例化
static关键字特点
1)被static声明的资源只能被初始化一次,在整个程序编译通过之后,运行之前进行初始化
2)被 static修饰的变量叫静态变量,static不能修饰局部变量(如方法中变量),因为本身static就有全局的意思
3)修饰方法,称为静态方法,静态方法只能调用静态资源,不能调用非静态变量,不能应用this和super,因为静态资源的加载先于实例化
4)被static修饰的变量和方法独立于该类的任何对象。也就是说,她不依赖于特定的对象,被该类的所有对象共享(可以被共同访问到)
5)修饰内部类(静态类),外部类不需要实例化,可以直接通过外部类名调用
特点:
run as》加载静态资源》开始执行第一行代码
1)static声明的资源只能被初始化一次,且在整个编译通过之后,开始运行之前完成初始化
//同类声明方法,可以直接 方法名()进行调用,不同类用 类名.方法名()进行调用
//被static修饰的变量称为静态变量 static String name;可以在同类方法中直接使用
static String name;
main方法内
name = "123";
其他子父类:
类名.name = "123";
//static声明代码块叫静态代码块
JVM的类加载顺序
静态资源》new》代码块》构造方法
先在内存分配资源后构造方法初始化
/**
代码块
构造方法
代码块
构造方法
静态代码块
代码块
构造方法
*/
静态资源取出单独加载=》
1.b1,加载的是该类的对象,所以把该类中除静态资源外的资源加载一遍//运行代码块和构造方法
2.加载b2与b1同理//代码块和构造方法
3.加载静态代码块
4.加载main方法中的bus对象,同b1b2一致//代码块和构造方法
JVM的类加载顺序
静态资源》new》代码块》构造方法
先在内存分配资源后构造方法初始化