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