JAVA萌新学习day11
ManDemo.java
public class ManDemo {
public static void main(String[] args) {
System.out.println("ManDemo.main");
Man man = new Man();
man.country = "美国";
Man man1 = new Man();
System.out.println(man1.country);
}
Man.java
public class Man extends Person{
String address;
static {
//静态代码块
/*
静态代码块是类加载时执行,并且只执行一次,和创建对象无关
先执行父类静态代码块,再执行子类静态代码块
静态属性和静态代码块,按顺序执行
*/
System.out.println("Man.static initializer");
}
{//动态代码块,在构造方法前执行,只要创建对象就会调用
//先执行父类动态代码块,再执行父类构造方法,再执行子类动态代码块,再执行子类构造方法
System.out.println("Man.instance initializer");
address = " ";
}
Man(){
address = "北京";
System.out.println("Man.Man");
}
}
Person.java
public class Person {
String name;
static String country = "中国";
static{
//静态代码块
System.out.println("Person.static initializer");
country = "China";
}
{
System.out.println("Person.instance initializer");
}
Person(){
name = "构造方法辅助";
System.out.println("Person.Person");
System.out.println(Person.country);
}
}
//final修饰的类,叫最终类,不能被继承
public final class Animal {
//final修饰变量,这个变量就变成常量,创建时需要赋值
private final int type = 0;
//final修饰的方法,不能被子类重写
public final int methodA(){
return 0;
}
}