一、繼承的概念
讓乙個沒有某個屬性或方法的物件能夠使用另乙個具有某個方法或屬性的物件的屬性或方法。
先看乙個小規模的例項和例項之間的繼承:
var obj =
}var obj2 =
如何利用show,列印出obj2的名字?
obj.show(); //結果是 obj
obj.show.call(obj2); //結果是 obj2
obj2.show();
二、繼承主要有以下四種,我們分別一一枚舉:
原型的繼承
建構函式的繼承
混合繼承(組合)
es6 class 繼承
1、原型的繼承
原型繼承1 - 原型物件繼承特點:
1、簡單,方便,易操作;
2、但是,只能繼承原型身上的方法和屬性,不能繼承建構函式內的方法和屬性;
function parent(n)
parent.prototype.show = function()
function child(n)
child.prototype = new parent("hello");
// child的例項c ---> __proto__ ---> child.prototype ---> parent的例項 ---> __proto__ ---> parent.prototype
// child.prototype.show = function()
var p = new parent("張三");
// console.log(p)
p.show();
// console.log(p.name);
var c = new child();
// console.log(c);
c.show();
// console.log(c.name);
// c.__proto__.__proto__.show = function(){}
原型繼承2 - 原型鏈繼承:特點:
1.更加的簡單,方便,易操作;
2.不僅可以繼承原型身上的方法和屬性,而且還可以繼承建構函式中的方法和屬性;
3.但是,不方便傳參;
2、建構函式的繼承
以上是建構函式繼承(改變this指向繼承):特點:
1.方便的傳參;
2.還可以實現多繼承;
3.但是,只能繼承建構函式內部的屬性或方法,不能繼承原型身上的屬性或方法;
以上是 原型繼承 - 多繼承;
以上是混合繼承:建構函式繼承 + 原型繼承
1.略複雜;
2.既可以繼承建構函式,又可以繼承原型;
3.方便傳參;
4.可以多繼承建構函式;
5.注意:原型鏈繼承時,依然有引數隱患;
6.是常用的繼承方式之一。
3、es6的class繼承
es6的class繼承,原理就是:建構函式方式繼承 + 原型鏈繼承;
補充小知識: 如何區分形參和實參?答: 看函式的執行還是定義。
執行時是實參;
定義時是形參。
繼承 介面小例子
package doctors public abstract class person 獲取名字 public string getname 行走,子類可以不重寫 public void walk 思考,抽象方法,子類必須對其進行重寫 public abstract void think pack...
ArrayList類及繼承介紹
arraylist是用來儲存資料的陣列。陣列的長度不可變,陣列如果要擴容,可以用陣列的複製 int copyof int,int newlength 為了解決陣列長度不可變的問題,可以實現陣列長度動態變化。arraylist僅支援引用型別的資料。arraylistarrlist new arrayl...
android shape講解小全及例子
原文 例子 shape xmlns android android shape rectangle oval line ring 預設為rectangle corners shape rectangle 時使用,android radius integer 半徑,會被下邊的屬性覆蓋,預設為1dp,a...