1,abstract 修飾類 抽象類
2,abstract 修飾方法 抽象方法
3,抽象方法只有宣告,而沒有具體的方法實現部分
注意:抽象類中的抽象方法,強制其子類重寫抽象方法
抽象類不能建立物件,因為其含有無具體實現的方法
抽象類建立物件的方式可仿照多型
抽象類中不一定有抽象方法,但抽象方法一定在抽象類中
其抽象方法無具體實現,所以沒法自身建立物件,且會強制子類重寫其抽象類
此外和普通類沒區別
抽象類中可以沒抽象方法嗎?作用是什麼
可以沒抽象方法,作用是禁止此類建立物件,而只能使用其子類
abstract 與static , final ,private 不能共存
static 修飾的靜態方法需用類名呼叫
而abstract修飾的抽象方法沒方法的實現,只有宣告,無法呼叫,所以不能喝static 一起使用
final修飾方法後不可重寫
而abstract修飾方法會強制子類重寫抽象方法,所以不能共存
private 修飾的方法只能本類訪問,而子類訪問不到,無法重寫
介面是對行為的抽象
使用inte***ce 修飾 //inte***ce a
介面特點:
1)介面只能宣告抽象方法
2)如果不寫public abstract 修飾介面宣告方法,系統會預設新增
3)介面無法建立物件,要使用介面,就要去實現介面中的方法
4)介面的實現 使用implements
介面注意
只能有常量public static final 常量名 = 初值;和抽象方法
當你在介面宣告常量系統會預設public static final
類和類的關係:單或多層繼承
類和介面的關係:實現關係,可以有單實現和多實現
class a implements c, s{}
介面和口的關係:可以單繼承,也可多繼承
inte***ce fly2 extends fly, fly1
* 動物類 姓名 年齡 吃飯 睡覺
* 貓和超級貓類
* 超級貓介面:飛
/*
* * 動物類 姓名 年齡 吃飯 睡覺
* 貓和超級貓類
* 超級貓介面:飛
*/public class demo04
abstract class animal
public animal(string name,int age)
public void setname(string name)
public void setage(int age)
public string getname()
public int getage()
public abstract void eat();
public abstract void sleep(); }
class cat extends animal
public cat(string name ,int age)
@override
public void eat()
@override
public void sleep()
}inte***ce fly
inte***ce fly1
inte***ce fly2 extends fly, fly1
class supercat extends animal implements fly2
public supercat(string name ,int age)
@override
public void eat()
@override
public void sleep()
@override
public void fly()
@override
public void flyy()
@override
public void fly1()
}
* 汽車租賃: 某公司分為小汽車和客車兩種車型, 小汽車有寶馬,本田,奇瑞等型號, 客車分為18座位和23座位的,
*/public class demo06
abstract class vehicle
inte***ce seat
inte***ce model
class bus extends vehicle implements seat
public void seat()
} class car extends vehicle implements model
public void model()
}
/*
* 建立乙個印表機類printer, 定義抽象方法print(), 建立兩個子類,針式印表機(dotmatriixprinter)
* 和噴墨印表機(inkperprinter), 在各自的類中重寫方法print(),編寫測試類實現兩種印表機,
* 再新增乙個雷射印表機子類(laserprinter), 重寫方法print(), 修改測試類實現該印表機列印
*/public class demo05
}abstract class printer
class dotmatriixprinter extends printer
}class inkperprinter extends printer
}class laserprinter extends printer
}
深入理解Java中的介面與抽象類
一 抽象類 抽象方法 只宣告而未實現的方法,即沒有方法體 public abstract void getmessage 抽象方法抽象類 普通類的超集,只是比普通類多了一些抽象方法而已 所有抽象方法要求使用abstract關鍵字來定義,並且抽象方法所在的類也一定要使用abstract關鍵字來 定義,...
深入理解Java的介面和抽象類
一 抽象類 二 介面 三 抽象類和介面的區別 抽象方法 它只有宣告,沒有具體的實現。抽象方法的宣告格式為 abstract void fun 抽象方法必須用 abstract 關鍵字來修飾,如果乙個類含有抽象方法,則稱這個類為抽象類,抽象類必須在類前用abstract關鍵字來修飾。因為抽象類中沒有具...
深入理解java抽象類
在物件導向的概念中,所有的物件都是通過類來描述的,但是並不是所有的類都描述了物件,有些類裡面並沒有包含足夠的資訊來描述物件,這些類被認為是抽象類。抽象類與普通類的區別就在於抽象類不能被例項化,這就決定了抽象類必須有子類實現它的抽象方法 抽象類只是在普通類的基礎上擴充了一些抽象方法而已,所謂的抽象方法...