VR開(kāi)發(fā)入門(mén)教程27:附加修飾符之抽象類(lèi)
來(lái)源:
奇酷教育 發(fā)表于:
抽象的意義:描述抽象的概念,規(guī)定必須實(shí)現(xiàn)的方法的統(tǒng)一接口。抽象類(lèi)用abstract關(guān)鍵字來(lái)修飾一個(gè)類(lèi)時(shí),該類(lèi)叫做抽象類(lèi)定義抽象類(lèi):abstract
抽象的意義:描述抽象的概念,規(guī)定必須實(shí)現(xiàn)的方法的統(tǒng)一接口。
抽象類(lèi)
用abstract關(guān)鍵字來(lái)修飾一個(gè)類(lèi)時(shí),該類(lèi)叫做抽象類(lèi)
定義抽象類(lèi):abstract class AbstractClass{}
抽象類(lèi)必須被繼承。
抽象類(lèi)不能被直接實(shí)例化。它只能作為其它類(lèi)的基類(lèi),這一點(diǎn)與密封類(lèi)(sealed類(lèi))正好相反。
用abstract來(lái)修飾一個(gè)方法時(shí),該方法叫做抽象方法
abstract returnType AbstractMethod ( [paramlist] );
抽象方法必須被重寫(xiě)(override),抽象方法只有聲明,不能有實(shí)現(xiàn) 沒(méi)有方法體。定義了抽象方法的類(lèi)必須是抽象類(lèi)。
抽象類(lèi)中的規(guī)定:
1、抽象類(lèi)不能被直接實(shí)例化,只有它的非抽象子類(lèi)可以創(chuàng)建對(duì)象
2、抽象類(lèi)中不一定包含抽象方法,但有抽象方法的類(lèi)必定是抽象類(lèi)
3、抽象類(lèi)中的抽象方法只是聲明,不包含方法體,即不給出方法的實(shí)現(xiàn)
4、構(gòu)造方法、類(lèi)方法不能聲明為抽象方法
5、抽象類(lèi)的子類(lèi)必須給出抽象類(lèi)中的抽象方法的具體實(shí)現(xiàn),除非該子類(lèi)也是抽象類(lèi)
6、抽象類(lèi)中不一定全是抽象方法 可以有一部分具體實(shí)現(xiàn)
密封類(lèi)
被sealed修飾的類(lèi)被稱為密封類(lèi)。
定義密封類(lèi):sealed class SealedClass{}
特性:密封類(lèi)不能被繼承
被sealed修飾的方法被稱為密封方法。
sealed override returnType SealedMethod([paramList])
{
}
特性:
1、密封方法會(huì)重寫(xiě)基類(lèi)中的方法
2、密封方法無(wú)法被重寫(xiě)
注意:必須始終與override一起使用
被sealed修飾的屬性被稱為密封屬性
sealed override returnType Property
{
set
{
}
get
{
}
}
特性:
1、密封屬性會(huì)覆蓋基類(lèi)中的屬性
2、密封屬性無(wú)法被覆蓋
注意:必須始終與override一起使用
常量與只讀
Const 定義的是靜態(tài)常量在聲明的同時(shí)賦值.以后不能改變它的值.屬于編譯時(shí)常量。不能用new初始化。
Const一般只能修飾值類(lèi)型和String。也可以修飾引用類(lèi)型 但是引用類(lèi)型只能為null,所以一般不用他修飾引用類(lèi)型。
Readonly 是只讀變量.屬于運(yùn)行時(shí)變量.可以在類(lèi)constructor里改變它的值.不能作用于局部變量。
初始化時(shí)機(jī):
1.聲明的同時(shí)賦值
2.靜態(tài)變量的話 在靜態(tài)構(gòu)造中初始化
3.非靜態(tài)變量的話 在非靜態(tài)構(gòu)造中初始化