Java-初始化

/**
 * Java初始化顺序
 * 
 * 从public类,public static main开始
 * 如果有基类
 * 先初始化基类static变量,再初始化派生类static变量
 * 最后运行public static main方法
 * 
 * 若使用一个类的对象
 * 如果有基类
 * 先初始化基类成员变量
 * 基类构造器
 * 再初始化派生类成员变量
 * 派生类构造器
 */

//example
enum Sex{
	MAN,WOMAN,UNKNOW
}

class People{
	String name;
	Sex sex;
	public People(){
		System.out.println("People():INIT");
		this.name="";
		this.sex=Sex.UNKNOW;
	}
	public People(String name,Sex sex){
		System.out.println("People(String name,Sex sex):INIT");		
		this.name=name;
		this.sex=sex;
	}
	public void sayHello(){
		System.out.println("Hello,my name is "+name+".\nMy sex is "+sex+".");
	}
}

class Student extends People{
	int id;
	public Student(){
		super();
		System.out.println("Student():INIT");
		this.id=0;
	}
	
	@Override
	public void sayHello(){
		System.out.println("sayHello():Override");	//复写
	}
	/*//ERROR
	@Override
	public void sayHello(int i){
		System.out.println("sayHello():Override");	//重载
	}
	*/
}

public class Main{
	public static void main(String[] args){
		Student stu=new Student();
		stu.sayHello();
	}
}


你可能感兴趣的:(Java)