静态属性、方法、代码块、父子类执行先后顺序

1.静态属性:用static修饰的属性称为静态属性,静态属性是整个类共同持有的共享空间,任何对象去修改都会影响其他对象,静态属性可以直接通过(类名.属性名)调用。
2.静态方法:用static修饰的方法称为静态方法,静态方法允许访问静态属性,不能直接访问非静态属性,其他类中可用(类名.方法名)调用,本类中可直接使用 方法名() 调用,静态方法可以继承,不能重写,没有多态,不能使用this 和super。
3.静态代码块:类加载时触发静态代码块的执行,仅执行一次,执行的地位在静态属性初始化之后。
作用:可为静态属性赋值,或进行必要的初始行为
4.父子类执行先后顺序

package com.demo.controller;
public class kjh  {

	public static void main(String[] args){
	
		Bird bird=new Bird();
		bird.stado();
		}
}

 class Animal {
	String eye="父类实例属性";
	static String staString2="父类静态属性";
	static {
		System.out.println(staString2);
		System.out.println("父类静态代码块");
	}
	{
		System.out.println(eye);
		System.out.println("父类动态代码块");
	}
	public Animal() {
		
		System.out.println("父类构造方法");
	}
	public void eat() {
		System.out.println("父类动态方法");
	}
}
class Bird extends Animal {
	static String doString="子类静态属性";
	String yeString="子类实例属性";
public Bird() {
	
		System.out.println("子类构造方法");
	}
	static {
		System.out.println(doString);
		System.out.println("子类静态代码块");
	}
	{
		System.out.println(yeString);
		System.out.println("子类动态代码块");
	}

	public static void stado() {
		System.out.println("子类静态方法调用"+staString2);
	}

	
}


自上而下
在这里插入图片描述
记录记录记录~~~

猜你喜欢

转载自blog.csdn.net/MemoryLoss78/article/details/105008354