abstract與final修飾符
阿新 • • 發佈:2019-01-26
抽象類和抽象方法都通過abstract關鍵字來修飾。
抽象類不能被例項化,內部抽象方法的數量不限,可以沒有,也可以全是。
抽象方法只有方法宣告,沒有實現。
有抽象方法的類一定宣告抽象類,子類必須重寫。
abstract不能和private,static,final共用
接著上一篇的程式碼進行修改,可以在父類前面加上修飾符abstract,父類就變成一個抽象類。
上一篇點這裡
在上面的基礎上可以把原來的父類宣告成抽象類。
增加一些
public abstract class Person
String getName(){
return name;
}
String getSex(){
return sex?"男":"女";
}
int getAge(){
return age;
}
public abstract void print();//抽象方法,只有宣告。
在Teachers類中重寫,其他的子類中也必須重寫
public void print(){ //重寫抽象方法
System.out.print(" 姓名:"+getName());
System.out.print(" 職稱:"+this.PositionalTitle);
System.out.print(" 性別:" +getSex());
System.out.print(" 年齡:"+getAge());
}
都寫好後,就可以呼叫了
Teachers teacher=new Teachers("Lary","professor");
teacher.print();
與抽象abstract相對的就是final,定義不可被繼承的類。
abstract不能用來修飾屬性而final可以。
java中有很多類是final類,如String類、Math類,他們不能再有子類,Object類中的一些方法也是final方法。
final Teachers teacher=new Teachers("Lary","professor");
teacher.PositionalTitle="jkl"; //修改物件的內容,正常
teacher=new Teachers("Mark","jkl"); //變數指向另外的物件,報錯