標籤:
協助文檔 <=> API文檔 <=> 程式說明文檔
姓名,年齡,工號
僱員類
普通員工類
經理類
abstract:抽象,即不具體,只能修飾類和方法,不能修飾變數等。
抽象方法:被abstract關鍵字修飾的方法,只有函式宣告,沒有函數體。
抽象類別:被abstarct修飾的類。
形式上看,就是含有抽象方法的類,當然也可以一個抽象方法也沒有,也可以將類修飾成抽象類別,這樣相當于禁止
該類建立類對象。
意義上看,抽象類別是指,對抽象類別所描述的事物在分析時,發現有一部分功能的功能內容是不確定的,但功能一定
存在。所以就將該部分功能定義成抽象方法,沒有函數體,只有函式宣告。
注意:抽象類別不能用new建立對象。但可以聲明該抽象類別的引用變數。
抽象類別被子類覆蓋後,若子類想使用抽象類別中的功能,則必須先覆寫(覆蓋)所有抽象方法,只有所有抽象方法都被覆蓋
(覆寫),才能夠建立子類對象,來調用其中的方法,如果子類只覆蓋(覆寫)了一部分抽象方法,則子類也是一個抽象類別
(即子類必須定義成一個抽象類別,因為子類繼承了父類,並且沒有覆蓋(覆寫)所有的抽想方法,相當於子類中也存在一些
抽象的方法,所以子類必須定義成一個抽象類別),若子類沒有定義成抽象類別,且沒有覆蓋(覆寫)父類中的所有的抽象方法
,則編譯會報錯。
抽象類別和一般類沒有什麼太大的區別,只有兩點不同
1,抽象類別中存在一些沒有函數體,只有函式宣告的方法。
2,抽象類別不能建立執行個體,因為建立類對象後,引用沒有函數體的方法沒有意義。
抽象類別和其他父類沒有區別都是從子類上抽取而來,只不過,多個子類中的功能定義相同,功能內容不同,所以父類中沒有
必要有方法體,就出現了抽象函數。抽象類別雖不能建立對象,但是可以有構造方法和成員變數,成員函數,構造代碼塊,靜態
代碼塊。和普通的父類沒有什麼區別,也可是使用多態技術,也可以使用super關鍵字進行訪問。也存在覆蓋(覆寫)。也可
以直接拿過來用,繼承了父類(抽象類別)的方法,直接調用即可。
抽象類別中的抽象方法,即被abstract修飾的方法,相當於強迫子類必須覆蓋(覆寫)該方法,否則就不能建立該子類對象。
final修飾方法剛好相反,是強制禁止覆蓋(覆寫)某一個方法。
*/
abstract class Employee
{
private String name;
private int age;
private String id;
Employee(String name,int age,String id)
{
this.name = name;
this.age = age;
this.id = id;
}
public String getName()
{
return name;
}
public abstract void work();
}
class Manager extends Employee
{
private int bonus;
Manager(String name ,int age,String id,int bonus)
{
super(name,age,id);
this.bonus = bonus;
}
public void work()
{
System.out.println("Manager work");
}
}
class Pro extends Employee
{
Pro(String name,int age,String id)
{
super(name,age,id);
}
public void work()
{
System.out.println("Pro work");
}
}
abstract class Ceo extends Employee
{
Ceo(String name ,int age ,String id)
{
super(name,age,id);
}
public void work()
{
System.out.println("Ceo work");
}
}
java抽象類別學習