面向对象
类:class
class Person {
// 静态属性
static readonly lang: string = "chinese";
// 静态只读属性,类似const
static readonly happy: boolean = true;
// 成员属性/实例属性
name: string = "孙悟空";
// 成员属性没有默认值
age: number;
// 只读成员属性
readonly sex: string;
// 所有属性必须初始化,无论是不是只读属性,而java中只有只读属性(final)才必须初始化
// 这是构造器,构造器不可以重载
constructor(age: number, sex: string) {
this.age = age; // this指代当前对象
this.sex = sex;
}
// 静态方法
static sayHello() {
console.log("hello");
}
// 成员方法
printHello() {
console.log("hello");
}
}
// 根据类创建对象
const p = new Person(10, "男");
// 访问静态属性
console.log(Person.lang);
// 访问静态方法
Person.sayHello()
// 访问成员属性
console.log(p.age)
// 访问成员方法
p.printHello()封装
执行结果:
解决不可以使用get 和 set的问题:tsc -t es5 a.ts
public、protected、private
public,都可以访问protected是提供给子类访问的,外部不可访问private是私有的,只有自己内部可以访问
属性快速写法
下面两种写法是等同的:
继承
多继承:不支持
不支持多继承。
子类新增方法
给狗增加跑的方法:
方法重写
super关键字
构造器重写
抽象类
抽象类不可以用于创建实例。抽象类中可以定义抽象方法,抽象方法没有方法体,且必须必须被重写:
接口
函数式接口
最后更新于
这有帮助吗?