Java從入門到實戰之(14)面向物件之抽象類(二)
阿新 • • 發佈:2020-10-13
Java面向物件-抽象類
定義:在java中,含有抽象方法的類稱為抽象類,同樣不能生成物件;
注意點:
1,包含一個抽象方法的類是抽象類;
2,抽象類和抽象方法都要用abstract關鍵字修飾;
3,抽象方法只需要宣告而不需要實現;
4,抽象類必須被子類繼承,(假如不是抽象類)必須重寫抽象父類中的全部抽象方法;
5,抽象類不能被例項化;
我們先來定義一個抽象類:
1 package com.java1234.chap03.sec11; 2 3 /** 4 * 定義一個抽象類People 5 * @author user 6 * 7 */ 8 public abstractclass People { 9 10 private String name; 11 12 public String getName() { 13 return name; 14 } 15 16 public void setName(String name) { 17 this.name = name; 18 } 19 20 public void say(){ 21 System.out.println("我的姓名是:"+this.getName()); 22 }23 24 /** 25 * 定義一個抽象方法 職業 讓子類去具體實現 26 */ 27 public abstract void profession(); 28 29 }
抽象類,定義一個屬性name 以及方法say() 再定義一個抽象方法 profession 具體實現讓子類去實現;
我們搞一個測試類:
我麼嘗試下例項化下People類:
我們會看到 編譯出錯,不能例項化People類;
我們定義一個Student類,以及一個Teacher類:
1 package com.java1234.chap03.sec11;2 3 public class Student extends People{ 4 5 @Override 6 public void profession() { 7 System.out.println("職業是:學生"); 8 } 9 10 }
1 package com.java1234.chap03.sec11; 2 3 public class Teacher extends People{ 4 5 @Override 6 public void profession() { 7 System.out.println("職業是:老師"); 8 } 9 10 }
我們搞一個測試類:
1 package com.java1234.chap03.sec11; 2 3 public class Test { 4 5 public static void main(String[] args) { 6 7 Student student=new Student(); 8 student.profession(); 9 10 Teacher teacher=new Teacher(); 11 teacher.profession(); 12 13 } 14 }
執行輸出:
職業是:學生
職業是:老師