/*
* 宣告乙個動物型別
*/ function animal(){}
// 為動物類建立乙個aname屬性
animal.prototype.aname = "動物";
// 為動物類建立乙個吼叫的方法
animal.prototype.howl = function(word)
console.log("我是" + this.aname + ",我想說"+word);
};
/** 宣告乙個狗類
*/ function dog(){}
// 設定狗類繼承動物類
dog.prototype = new animal();
// 設定superclass儲存父類的方法屬性
dog.prototype.superclass = new animal();
// 設定狗類的aname屬性
dog.prototype.aname = "狗類";
// 設定鳥類自己的 howl 方法
dog.prototype.howl = function();
/**
* 宣告乙個柯基類
*/ function keji(){}
// 設定柯基類繼承狗類
keji.prototype = new dog();
// 設定superclass儲存父類的方法屬性
keji.prototype.superclass = new dog();
keji.prototype.howl = function()
// 例項化乙個柯基物件:"推土基"
var tuituji = new keji();
// 呼叫自身原型的howl方法
tuituji.howl(); // --> "我是柯基"
// 呼叫父類dog的howl方法
tuituji.superclass.howl(); // --> "這裡是dog類的howl方法!"
// 直接呼叫最大的父類animal的howl方法(方法中的this指向animal)
tuituji.superclass.superclass.howl("我是乙隻柯基"); // --> "我是動物類,我想說我是乙隻柯基"
// 用call呼叫最大的父類animal的howl方法(方法中的this指向tuituji,但此時tuituji並沒有aname屬性,所以this.name用的是dog的aname)
tuituji.superclass.superclass.howl.call(tuituji,"我是乙隻柯基"); // --> "我是狗類,我想說我是乙隻柯基"
// 給當前物件增加aname屬性
tuituji.aname = "推土基";
// 還是用call呼叫最大父類animal的howl方法(此時tuituji物件中已經有aname屬性);
tuituji.superclass.superclass.howl.call(tuituji,"我是乙隻柯基"); // --> "我是推土基,我想說我是乙隻柯基"
js原型實現繼承
繼承是一種關係,類與類之間的關係,但是js中沒有類,所以通過建構函式來模擬類,然後通過原型來實現繼承。繼承也是原型的第二個作用,同樣是為了資料共享,原型中實現繼承其實就是改變物件的原型指向 寫法 建構函式名字.call 當前物件,屬性,屬性,屬性。案例 具體 如下 function person n...
C 通過介面實現多重繼承
using system using system.collections.generic using system.text 通過介面實現多重繼承 namespace inte cedemo public bool ismale inte ce teacher 定義介面 inte ce docto...
js繼承(一)原型繼承
正式開工了 繼承在js中有著很大的地位,同時理解起來也比較抽象,我將分幾篇部落格來記錄js的繼承。原型繼承 相當於將父類物件與子類物件打通橋梁,可以靈活實現追加屬性與行為 子類擁有父類的一切行為和屬性。特點 非常純粹的繼承關係,例項是子類的例項,也是父類的例項 父類新增原型方法 原型屬性,子類都能訪...