Java 父类子类问题

直接上代码:

package com.test;

public class Parent {
	
	static {
		System.out.println("父类静态代码块");
	}
	{
		System.out.println("父类代码块");
	}
	public Parent(){
		System.out.println("父类构造方法");
	}
	void say(){
		System.out.println("父类Say方法");
	}
	void hello(){
		System.out.println("父类Hello方法");
		say();
	}
	
}
package com.test;

public class Son extends Parent{

	static {
		System.out.println("子类静态代码块");
	}
	
	{
		System.out.println("子类代码块");
	}
	
	public Son(){
		System.out.println("子类构造方法");
	}
	
	void say(){
		System.out.println("子类重写父类say方法后,在父类中调用的就是重写过的");
	}

	void sayHello(){
		System.out.println("子类sayHello");
		super.hello();
	}
	
	public static void main(String[] args) {
		Son son = new Son();
		son.sayHello();
		System.out.println("----第二次创建实例,则不会执行静态代码块----");
		Son son2 = new Son();
	}
	
}

执行结果:

Java 父类子类问题_第1张图片

你可能感兴趣的:(Java)