zoukankan      html  css  js  c++  java
  • [ts]类

    //
    class Greeter {
      greeting: string;
      constructor(message: string) {
        this.greeting = message;
      }
    
      greet() {
        return `Hello, ${this.greeting}`;
      }
    }
    
    const greeter = new Greeter('world');
    console.log(greeter.greet());
    
    // 继承
    class Animal {
      name: string;
      constructor(theName: string) {
        this.name = theName;
      }
      move(distance: number = 0) {
        console.log(`Animal moved ${distance}m.`);
      }
    }
    class Snake extends Animal {
      constructor(name: string) {
        super(name);
      };
      move(distance: number = 5) {
        console.log('slithering');
        super.move(distance);
      }
    }
    const sam = new Snake('sammy')
    sam.move();
    
    // 公共,私有与受保护的修饰符
    // 默认public
    // private 私有不能在外部访问
    // protected 不能在类外访问,但是可以在子类内访问
    
    class Person {
      protected name: string;
      protected constructor(name: string) { // 构造函数protected,类不能被实例化
        this.name = name;
      }
    }
    class Employee extends Person {
      constructor(name: string) {
        super(name);
      }
      public getName(): string {
        return this.name; // 子类可以访问protected
      }
    }
    
    // readonly
    class Octopus {
      constructor(readonly name: string){}
    }
    const octopus = new Octopus('tom');
    console.log(octopus.name);
    
    // 存取器
    class Emp {
      constructor(private _fullname: string = '') {}
      get fullName(): string {
        return this._fullname;
      }
      set fullName(newName: string) {
        this._fullname = newName + 'aaa';
      }
    }
    const emp = new Emp();
    emp.fullName = 'jerry';
    console.log(emp.fullName);
    
    // 静态属性
    class Grid {
      static origin = { x: 0, y: 0 };
    }
    console.log(Grid.origin);
    
    // 抽象类
    abstract class Animal2 {
      abstract printMethod(): void;
    }
  • 相关阅读:
    面试基础知识文档
    敏捷式开发
    redis总结
    自我介绍的问题
    面试2
    唐巧的iOS技术博客选摘
    IOS开发中滑动页面时NSTimer停止的问题
    iOS多线程GCD(转)
    iOS 用instancetype代替id作返回类型有什么好处?
    C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别 (转)
  • 原文地址:https://www.cnblogs.com/zhoulixue/p/15571043.html
Copyright © 2011-2022 走看看