1. 程式人生 > >abstract與final修飾符

abstract與final修飾符

抽象類和抽象方法都通過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"); //變數指向另外的物件,報錯