07-TypeScript类的概念和类的继承

上一章说了TypeScript的对象, 说完对象, 说TypeScript类。 类是对象的模板, 描述了所创建的对象共同的属性和方法。创建一个类的语法是这样

class className {
	属性
	构造函数
	方法
}

举例

class Animal {
    // 属性
    name: string
    color: string

    constructor(name: string, color: string) {
        this.name = name;
        this.color = color;
    }

    // 方法
    run() {
        console.log("动物会跑。。。")
    }
}
  • static关键字, 用于定义类的数据成员(属性和方法)为静态的, 静态成员和方法可以直接通过类名调用。举例

    class Dog {
        // 属性
        static color: string
    
        static show() {
            console.log(`我是一只${Dog.color}的狗`)
        }
    }
    
    Dog.color = "白色"
    Dog.show();
    

    • 访问控制修饰符

      TypeScript 中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。 TypeScript 支持 3 种不同的访问权限。

      • public(默认) : 公有,可以在任何地方被访问。

      • protected : 受保护,可以被其自身以及其子类和父类访问。

      • private : 私有,只能被其定义所在的类访问。


  • 类的继承

    TypeScript 支持继承类,即我们可以在创建类的时候继承一个已存在的类,这个已存在的类称为父类,继承它的类称为子类。

    类继承使用关键字 extends,子类除了不能继承父类的私有成员(方法和属性)和构造函数,其他的都可以继承。

    注意: TypeScript 一次只能继承一个类,不支持继承多个类。举例

    class Animal {
        // 属性
        name: string
        color: string
    
        constructor(name: string, color: string) {
            this.name = name;
            this.color = color;
        }
    
        // 方法
        run() {
            console.log("动物会跑。。。")
        }
    }
    
    // Cat类继承了Animal类, 并且继承了父类的name属性和color属性
    class Cat extends Animal {
       call() {
           console.log(`我是${this.name}, 我的颜色是${this.color}`);
       }
    }
    
    let cat = new Cat("咪咪", "白色");
    cat.call(); 
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
TypeScript 中,和接口是两个重要的概念,用于面向对象编程和定义对象的结构。下面是关于 TypeScript和接口的一些重要信息: 1. (Classes): - 是对象的蓝图,用于定义对象的属性和方法。 - 使用 `class` 关键字来定义一个,并使用构造函数来初始化的实例。 - 可以使用 `public`、`private` 和 `protected` 访问修饰符来控制成员的可见性。 - 可以使用 `extends` 关键字来实现之间的继承。 - 可以包含属性、方法和构造函数。 以下是一个使用 TypeScript 定义和使用的示例: ```typescript class Person { private name: string; constructor(name: string) { this.name = name; } public greet() { console.log(`Hello, ${this.name}!`); } } const person = new Person("John"); person.greet(); // 输出:Hello, John! ``` 2. 接口(Interfaces): - 接口用于定义对象的结构或的契约,并且在 TypeScript 中被广泛用于型检查和型推断。 - 使用 `interface` 关键字来定义一个接口,并在接口中定义属性和方法的签名。 - 接口可以被实现(使用 `implements` 关键字)或对象使用(使用 `:` 进行型注解)。 - 接口可以继承其他接口,以便组合多个接口的结构。 - 接口的属性可以是可选的,使用 `?` 来标记。 以下是一个使用 TypeScript 定义和使用接口的示例: ```typescript interface Shape { color: string; area(): number; } class Circle implements Shape { color: string; radius: number; constructor(color: string, radius: number) { this.color = color; this.radius = radius; } area() { return Math.PI * this.radius * this.radius; } } const circle: Shape = new Circle("red", 5); console.log(circle.area()); // 输出:78.53981633974483 ``` 通过使用和接口,你可以更好地组织和定义你的代码,并在编译时进行型检查,以减少错误并提高代码的可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绿色的小苹果

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值