Java中抽象類和抽象方法的區別

抽象方法:在類中沒有方法體的方法,就是抽象方法。html

抽象類:含有抽象方法的類就叫抽象類。app

抽象類中的抽象方法必須被實現!.net

若是一個子類沒有實現父類中的抽象方法,則子類也成爲了一個抽象類!code

抽象類中的普通方法,能夠沒必要實現。htm

1 用abstract來修飾一個類時,這個類叫作抽象類;用abstract來修飾一個方法時,該方法叫作抽象方法。例如 :繼承

1 abstract class Animal { //用abstract來定義一個Animal爲抽象類
2 }
3
4 public abstract void enjoy(); //用abstract來定義一個抽象方法"enjoy"

含有抽象方法的類必須被聲明爲抽象類,抽象類必須被繼承,抽象方法必須被重寫。ip

抽象類不能被實例化。get

抽象方法只需聲明,而不需實現某些功能。如:flash

1 public abstract void enjoy();//這個抽象方法不須要實現功能
2  
3 public void enjoy() {
4 System.out.print("叫聲"); //而通常的方法有必要實現某些功能
5 }

例A:沒抽象類的多態程序io

1 class Person {
2     public void f() {
3         System.out.println("父類");
4     }
5 }
6  
7 class Students extends Person {
8     public void f() {
9         System.out.println("學生類");
10     }
11 }
12  
13 class Teacher extends Person {
14     public void f() {
15         System.out.println("教師類");
16     }
17 }
18  
19 public class Test3 {
20     public static void main(String[] args) {
21         Person s = new Students();
22         Person t = new Teacher();
23         s.f();
24         t.f();
25     }
26 }

例B:抽象類的多態程序

查看源代碼

打印幫助

1 abstract class Person {
2     public abstract void f();
3 }
4  
5 class Students extends Person {
6     public void f() {
7         System.out.println("學生類");
8     }
9 }
10  
11 class Teacher extends Person {
12     public void f() {
13         System.out.println("教師類");
14     }
15 }
16  
17 public class Test3 {
18     public static void main(String[] args) {
19         Person s = new Students();
20         Person t = new Teacher();
21         s.f();
22         t.f();
23     }
24 }
相關文章
相關標籤/搜索