1. 程式人生 > 實用技巧 >Java面向物件——抽象類與抽象方法

Java面向物件——抽象類與抽象方法

抽象類:隨著繼承層次中一個個新子類的定義,類變得越來越具體,而父類則更一般,更通用。類的設計應該保證父類和子類能夠共享特徵。有時候將一個父類設計得非常抽象,以至於它沒有具體的例項,這樣的類叫做抽象類

abstract可以用來修飾的結構:類、方法

修飾類:
  • 一旦類抽象了,就不能例項化了(不能new 了)。
  • 抽象類中一定有構造器,便於子類物件例項化的時候呼叫
  • 開發中,都會提供抽象類的子類,讓子類物件例項化,完成相關的操作
  • 包含抽象方法的類,一定是一個抽象類,反之抽象類中是可以沒有抽象方法的。
修飾方法:
  • 抽象方法只有方法的宣告,沒有方法體;
  • 若子類重寫了父類中的所有的抽象方法後,此子類方可例項化;
  • 若子類沒有重寫父類中的所有抽象方法,則意味著這個子類也是個抽象類,需要用absolute修飾一下
package com.abs.java;

public class AbstractTest {
    public static void main(String[] args) {
//        Person p1=new Person();
//        p1.eat();
    }
}

abstract class Person{
    String name;
    int age;
    
    public Person() {
        
    }
    
    
public Person(String name,int age) { this.name=name; this.age=age; } // 抽象方法 public abstract void eat(); public void walk() { System.out.println("人走路"); } } // 子類例項化父類 class Student extends Person{ public Student(String name,int age) { super
(name,age); } // 改寫抽象父類的方法——或者子類也改為抽象類 public void eat() { System.out.println("學生吃有營養的"); } }