【例題】虛擬化子類

  勇芳 2017-3-31 5057

'' 所有方法(除了構造函數)都可以是虛擬的,
'' 允許它們在運行時被子類重寫
''

'' 基類
type ClassA extends object
	declare virtual sub hello( )
end type

sub ClassA.hello( )
	print "hello from A"
end sub

'' 子類
type ClassB extends ClassA
	declare sub hello( )
end type

sub ClassB.hello( )
	print "hi from B"
end sub

'' 測試儀,可以給任何類對象的子類
sub test( byval p as ClassA ptr )
	p->hello( )
end sub

	var a = new ClassA
	var b = new ClassB

	test( a )
	test( b )

	delete b
	delete a

建議虛擬的少些,一般都是用抽象的

抽象允許占坑不拉屎,虛的話,必須有一個值,一般來說,用來給基礎類預留接口

比如定義一個空的類,這個類會被三個接口相同但功能不同的東西集成,就用抽象把接口預留
例如 UI、游戲對象
很常用,也可以用來處理事件
把事件留作抽象函數,定義新空間寫一個實現就行了這樣


因國家互聯網安全管理要求,關閉回帖功能。大家需要留言,請使用【勇芳軟件客服】即時聯系勇芳點此打開->>勇芳軟件客服
返回
聯系勇芳
一个人看的www视频播放中文_2012中文字幕电影_亚洲国产成人高清在线观看_中文字幕天堂最新版在线网