package oop.FinalKeyword;

public class Student {
	final int STUDENT_ID ;
	final static int degree;
	String name;
	int geburtstag;
	
	/* so geht 
	 *	{STUDENT_ID = 200;}
	 */
	
	
	//oder so;
		Student(){
			STUDENT_ID = 20;
			//degree = 2; Das ist verboten
		}
		// nur in static block
		static {
			degree = 20;
		}
	

	public Student(final int STUDENT_ID, String name, int geburtstag) {
		//STUDENT_ID = 0; verboten, das STUDENT_ID final ist
		this.STUDENT_ID = STUDENT_ID;
		this.name = name;
		this.geburtstag = geburtstag;
	}

	// getmethod ist gültig
	public int getSTUDENT_ID() {
		return STUDENT_ID;
	}

	
	/*das ist verboten, weil wir STUDENT_ID nicht ersetzen dürfen
	 
	 * public int setSTUDENT_ID(int  STUDENT_ID) {
		this.STUDENT_ID = STUDENT_ID;
	}
	 */
	
	
	@Override
	final public String toString() {
		return "Student [STUDENT_ID=" + STUDENT_ID + ", name=" + name + ", geburtstag=" + geburtstag + "]";
	}
}



class GraduatedStudent extends Student{
	
	/*Verboten
	 * @Override
	 * public String toString() {
		return "Student [STUDENT_ID=" + STUDENT_ID + ", name=" + name + ", geburtstag=" + geburtstag + "]";
	}
	 */
	
	
}
