object類是所有類的父類
object類中有幾個方法
tostring() 返回當前物件本身的有關資訊,按字串物件返回
equals()比較兩個物件是否是同乙個物件
比較兩個物件是否是同乙個物件,是則返回true
操作符==
簡單資料型別,直接比較值。如1==2
引用型別,比較兩者是否為同一物件
hashcode() 返回物件的雜湊**值
生成隨機的雜湊值
getclass()獲取當前物件所屬的類資訊,返回class物件
abstract關鍵字建立抽象類 例如 public abstract class 類名{}
abstract也可用於方法——抽象方法
抽象方法沒有方法體
抽象方法必須在抽象類裡
抽象方法必須在子類中被實現,除非子類是抽象類
public abstract 方法返回值 方法名();
記住抽象方法不能有大括號也就是不能有方法體
子類可以重寫父類的抽象方法。
例如定義個抽象寵物類
建立抽象方法跑 建立狗類 繼承寵物類 重寫抽象方法跑
首先寵物類:
public
abstract
class
petpublic
void
setname
(string name)
}
抽象方法後一定不能有方法體
狗類:
public
class
dogextends
pet}
繼承父類並重寫方法
編寫測試類:
public
class
testpet
}
結果:狗正在跑
final關鍵字的作用在類中使用
public final class 類名{}
代表此類為最終類,不能被其他類繼承
public final 方法返回值 方法名(){}
代表此方法不能被重寫
final在屬性變數中代表常量
多型:同乙個引用型別,使用不同例項而執行不同操作
編寫具有繼承關係的父類和子類
子類重寫父類方法
使用父類的引用指向子類的物件
例如給寵物餵食是需要乙個主人類,正常的操作是
狗類乙個吃的方法,企鵝類乙個吃的方法,然後主人類中乙個餵狗的方法 乙個喂企鵝的方法
但是使用多型就可以省去主人的餵狗方法而是直接餵成寵物類,前提條件 企鵝和狗必須都屬於寵物類
定義抽象寵物類:
public
abstract
class
petpublic
void
setname
(string name)
public
intgethealth()
public
void
sethealth
(int health)
public
intgetlove()
public
void
setlove
(int love)
}
其中sett和get方法可以忽略不計因為這裡只顯示多型的使用。
首先定義抽象方法吃
狗類
public
class
dogextends
petpublic
void
setstrain
(string strain)
@override
public
void
eat(
)
狗類繼承父類寵物類並重寫吃的方法
public
class
penguin
extends
petpublic
void
set***
(string ***)
@override
public
void
eat(
)
企鵝繼承父類寵物類並重寫吃的方法
主人類
public
class
master
使用父類作為方法形參實現多型
方法體中引用父類的吃方法
測試類
public
class
testmaster
public
void
setstrain
(string strain)
@override
public
void
print()
企鵝類
public
class
penguin
extends
petpublic
void
set***
(string ***)
@override
public
void
print()
主人類:
public
class
master
else
if(typeid==2)
return pet;
}}
這裡直接以父類為返回值把控制台輸入的編號作為引數傳入方法, 然後判斷如果輸入為1 寵物物件為狗型別 則返回狗的print方法
輸入2 寵物物件為企鵝型別返回企鵝的print方法
測試類:
public
class
testmaster
public
void
setstrain
(string strain)
public
void
playplate()
}
企鵝類:
public
class
penguin
extends
petpublic
void
set***
(string ***)
}
主人類:
public
class
master
else
if(pet instanceof
penguin)}
}
利用instanceof運算子判斷是否一致
如果不一致則要使用強制型別轉換
測試類:
public
class
testmaster
{public
static
void
main
(string[
] args)
{ pet dog=
newdog()
; pet penguin=
newpenguin()
; master master=
newmaster()
; master.
play
(dog)
; master.
play
(penguin)
;
物件導向5 抽象類(abstract)
1.抽象類 abstract 1.1抽象類 語法 public abstract class 類名 1.2抽象方法 語法 public abstract 返回值型別 發放名 引數列表 例 public abstract void print 注意 抽象發放有abstract修飾,並且抽象發放沒有方法...
物件導向 抽象
物件導向分析與設計的主要任務是,找出類和物件,構建物件模型。物件模型的主要要素 抽象 封裝 模組化與層次結構。物件模型的次要要素 型別 併發 持久。抽象描述了乙個物件的基本特徵,可以將這個物件與所有其他型別的物件區分開來,因此提供了清晰定義的概念邊界,它與觀察者的角度有關。抽象關注乙個物件的外部檢視...
物件導向 抽象
物件導向分析與設計的主要任務是,找出類和物件,構建物件模型。物件模型的主要要素 抽象 封裝 模組化與層次結構。物件模型的次要要素 型別 併發 持久。抽象描述了乙個物件的基本特徵,可以將這個物件與所有其他型別的物件區分開來,因此提供了清晰定義的概念邊界,它與觀察者的角度有關。抽象關注乙個物件的外部檢視...