class

作者: 回不去的那些时光 | 来源:发表于2022-07-04 16:47 被阅读0次

面向对象编程的三大特点

  • 封装(Encapsulation):将对数据的操作细节隐藏起来,只暴露对外的接口。外界调用端不需要(也不可能)知道细节,就能通过对外提供的接口来访问该对象;
  • 继承(Inheritance):子类继承父类,子类除了拥有父类的所有特性外,还有一些更具体的特性;
  • 多态(Polymorphism):由继承而产生了相关的不同的类,对同一个方法可以有不同的响应。
class Animal {
  name: string;
  constructor(name: string) {
    this.name = name
  }
  run() {
    return `${this.name} is running`
  }}

const snake = new Animal('小二')

// 继承 Animal 并加一个方法
class Dog extends Animal {
  bark() {
    return `${this.name} is barking`
  }}

const xiaobao = new Dog('xiaobao')
console.log(xiaobao.run())
console.log(xiaobao.bark())

// 继承 Animal, 这里我们重写构造函数,注意在子类的构造函数中,必须使用 super 调用父类的方法,否则就会报错。
class Cat extends Animal {
  constructor(name) {
    super(name)
    console.log(this.name)
  }
  run() {
    return 'Meow, ' + super.run()
  }
}

const maomao = new Cat('maomao')
console.log(maomao.run())

类成员的访问修饰符

  • public
    修饰的属性或方法是公有的,可以在任何地方被访问到,默认所有的属性和方法都是 public 的;
  • private
    修饰的属性或方法是私有的,不能在声明它的类的外部访问;
  • protected
    修饰的属性或方法是受保护的,它和 private 类似,区别是它在子类中也是允许被访问的;
  • static
    通过 static 关键字定义静态方法。不能在类的实例上调用静态方法,而应该通过类本身调用

相关文章

网友评论

      本文标题:class

      本文链接:https://www.haomeiwen.com/subject/khgdbrtx.html