1. 程式人生 > 實用技巧 >Java從入門到實戰之(14)面向物件之抽象類(二)

Java從入門到實戰之(14)面向物件之抽象類(二)

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 abstract
class 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 }

執行輸出:

職業是:學生

職業是:老師