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中有不同的實現方式,這就叫做多型。(建立新的屬性不算是多型)







你可能感興趣的文章

Python 爬蟲-爬取大量圖片-課堂筆記

Python 爬蟲-爬取大量圖片-課堂筆記

每日心得筆記 2020-06-30(二)

每日心得筆記 2020-06-30(二)

SCSS - map vs list / @for vs @each

SCSS - map vs list / @for vs @each






留言討論