在編程語(yǔ)言中,我們經(jīng)常會(huì)聽(tīng)到“父類”和“原型”這樣的概念。在Java中,父類是類繼承結(jié)構(gòu)中的一個(gè)重要概念,它代表著某個(gè)類在繼承層次結(jié)構(gòu)中的“上級(jí)”,可以為子類提供共性的屬性和方法;而在JavaScript中,則使用“原型”這一概念來(lái)實(shí)現(xiàn)對(duì)象的繼承,通過(guò)原型鏈的方式來(lái)訪問(wèn)方法和屬性。
在Java中,父類是通過(guò)“extends”關(guān)鍵字來(lái)標(biāo)識(shí)的。例如:
public class Animal { public void eat() { System.out.println("動(dòng)物會(huì)吃"); } } public class Dog extends Animal { public void bark() { System.out.println("狗會(huì)叫"); } }
在這個(gè)例子中,Animal是一個(gè)父類,它的eat()方法被Dog類繼承并重寫。Dog類還新增了一個(gè)bark()方法。我們可以通過(guò)創(chuàng)建Dog類的對(duì)象來(lái)調(diào)用它的方法。例如:
Dog dog = new Dog(); dog.eat(); //調(diào)用父類的方法 dog.bark(); //調(diào)用子類的方法
在JavaScript中,原型是通過(guò)使用“prototype”關(guān)鍵字來(lái)實(shí)現(xiàn)的。例如:
function Animal() { } Animal.prototype.eat = function() { console.log("動(dòng)物會(huì)吃"); } function Dog() { } Dog.prototype = new Animal(); //將Animal作為Dog的原型 Dog.prototype.bark = function() { console.log("狗會(huì)叫"); } var dog = new Dog(); dog.eat(); //調(diào)用父類的方法 dog.bark(); //調(diào)用子類的方法
在這個(gè)例子中,Animal是一個(gè)構(gòu)造函數(shù),它的eat()方法被Dog的原型繼承并重寫。Dog的原型還新增了一個(gè)bark()方法。我們可以通過(guò)創(chuàng)建Dog的實(shí)例來(lái)調(diào)用它的方法。