package main
import ( "fmt"
)//編寫乙個學生考試系統
//小學生
type pupil struct
//顯示他的成績
func (p *pupil) showinfo()
func (p *pupil) setscore(score int)
func (p *pupil) testing()
//大學生, 研究生。。
//大學生
type graduate struct
//顯示他的成績
func (p *graduate) showinfo()
func (p *graduate) setscore(score int)
func (p *graduate) testing()
//**冗餘.. 高中生....
func main()
pupil.testing()
pupil.setscore(90)
pupil.showinfo()
//測試
var graduate = &graduate
graduate.testing()
graduate.setscore(90)
graduate.showinfo()
}
其它的結構體不需要重新定義這些屬性(字段)和方法,只需巢狀乙個 student 匿名結構體即可。示意圖如下:)//編寫乙個學生考試系統
type student struct
//將pupil 和 graduate 共有的方法也繫結到 *student
func (stu *student) showinfo()
func (stu *student) setscore(score int)
//給 *student 增加乙個方法,那麼 pupil 和 graduate都可以使用該方法
func (stu *student) getsum(n1 int, n2 int) int
//小學生
type pupil struct
//顯示他的成績
//這時pupil結構體特有的方法,保留
func (p *pupil) testing()
//大學生, 研究生。。
//大學生
type graduate struct
//顯示他的成績
//這時graduate結構體特有的方法,保留
func (p *graduate) testing()
//**冗餘.. 高中生....
Go之物件導向程式設計之繼承
golang的繼承與j a和php不太一樣,如php繼承需要用到extends關鍵字,而golang使用的是匿名繼承或有名繼承。二 簡單舉例 package main import fmt type brand struct type goods struct func main 結果 go run...
物件導向程式設計之封裝 繼承和重寫
封裝的含義 對屬性進行操作 將資料 屬性 和行為 方法 包裝到類物件中。在方法內部對屬性進行操作,早類物件的外部呼叫方法。這樣,無須關心方法內部的具體實現細節,從而隔壁了複雜度。在類物件的內部通過訪問控制把某些屬性和方法隱藏起來,不允許在類物件的外部直接訪問,而是在類物件的內部對外提供公開的介面方法...
PHP 物件導向程式設計之繼承性
可以有多層繼承,即乙個類可以繼承某乙個類的子類,如類 b 繼承了類 a,類c 又繼承了類 b,那麼類 c 也間接繼承了類 a。class a class b extends a php是單繼承,乙個類只能有乙個父類 乙個類可以有多個子類 支援多層繼承 classa class bextends ac...