关于静态代码块的总结:
1.Person.java
package com.demo01;
public class Person {
private String name;
private int age;
static {
System.out.println("父类静态代码块执行了...");
}
{
System.out.println("父类普通代码块执行了...");
}
public Person() {
System.out.println("父类构造代码块执行了...");
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
2.Student.java
package com.demo01;
public class Student extends Person{
static {
System.out.println("子类静态代码块执行了...");
}
{
System.out.println("子类普通代码块执行了...");
}
public Student() {
System.out.println("子类构造代码块执行了...");
}
public Student(String name, int age) {
super(name, age);
}
}
3.Demo01.java
package com.demo01;
public class Demo01 {
public static void main(String[] args) {
Student s=new Student();
}
}
运行结果如下:
父类静态代码块执行了…
子类静态代码块执行了…
父类普通代码块执行了…
父类构造代码块执行了…
子类普通代码块执行了…
子类构造代码块执行了…