Javascript - Class


Javascript中的Class有兩種特性,繼承(Inheritance)和多型or多態(Polymorphism)。


*繼承(Inheritance):
建立一個'子Class',並從'父Class'繼承相關屬性,程式碼如下:

class Animal {
  constructor(name) {
    this.name = name
  }
  makeSound() {
    return 'Animal sound'
  }
}

class Dog extends Animal {
  constructor(name) {
    super(name)
  }
}

const dog = new Dog('Dino')

console.log(dog.name) // Output: 'Dino'

建立Dog class的時候,使用extends以及super()來繼承'父Class'的屬性,因此可以使用dog.name來取得'Dino'。


*多型or多態(Polymorphism):
就算'子Class'是從'父Class'繼承來的,還是可以客製化'子Class'的屬性,程式碼如下:

class Dog extends Animal {
  constructor(name) {
    super(name)
  }
  makeSound() {
    return 'Woof!';
  }
}

const dog = new Dog('Dino')

console.log(dog.makeSound()) // Output: 'Woof!'

建立Dog class的時候,重新定義了makeSound(),同一個屬性在不同的class中有不同的實現方式,這就叫做多型。(建立新的屬性不算是多型)







你可能感興趣的文章

CS50 Call Stack

CS50 Call Stack

Day5 跟一般的指令可不一樣啊!跟我所認識的指令不同啊!

Day5 跟一般的指令可不一樣啊!跟我所認識的指令不同啊!

關於 JavaScript Date - 做一個倒數頁面

關於 JavaScript Date - 做一個倒數頁面






留言討論