1
类的概念和使用
1)
我们先写个基本的类,然后我们再使用一下
// 基本类的定义
class Cats {
// 类里面写点内容
content = "喵喵叫";
// 类里面可以加方法
// 返回 第一句的内容
say() {
return this.content;
}
}
// 使用这个类
const op = new Cats();
// 打印类的say()方法
console.log(op);
console.log(op.say());
需要注意的是 直接打印op 和op.say()是不一样的
2)
类的继承
// 基本类的定义
class Cats {
// 类里面写点内容
content = "喵喵叫";
// 类里面可以加方法
// 返回 第一句的内容
say() {
return this.content;
}
}
// 这个时候 Cats是父类 Ct 是 子类
// 子类 有父类的所有方法
class Ct extends Cats {
sayLove() {
return "love";
}
}
// 使用这个类
// 这次我们使用的是 子类 Ct
const op = new Ct();
// 打印类的say()方法
console.log(op.say());
console.log(op.sayLove());
打印结果很明显 和你想的一样
3)
类的重写
之前父类 里面的东西 在子类进行修改
class Ct extends Cats {
// 子类里面重新定义了一下 你应该可以看到
// 还是 say()方法 但是return 不一样
say() {
return "my honey";
}
sayLove() {
return "love";
}
}
结果 很明确 一起发生了改变
有点像 重新被赋值了
4)
super
关键字
class Ct extends Cats {
// 这个地方 用到super 调用父类方法 并且加了 扩展""
// 厉不厉害
say() {
return super.say() + ".yes!";
}
sayLove() {
return "love";
}
}
我们尝试 看一下结果
非常成功 和我们想的一样
2
类的访问类型
1)
最简单的类
class Person {
name: string;
}
// 这个地方常规写 const person = new Person()
// 我这个地方写的是 per 是因为 person之前使用过了 现在定义会报错
const per = new Person();
per.name = "xiaofu";
console.log(per.name);
结果我们都可以想到
2)
public 公开的 类的内部({ })和外部都可以使用
class Person {
// 这个name默认前面加了 public
public name: string;
// 这个是我们添加的方法
public sayHello() {
console.log(this.name + "sayhello");
}
}
const per = new Person();
per.name = "xiaofu";
// 这个地方是外部的调用
per.sayHello();
console.log(per.name);
这个时候打印 会出现神奇的事情
当然有个前提需要 外部调用才行 即 per.sayHello();
3)
private 私密的 不公开的 继承也是不可以
只能在类的内部 也就是大括号里面 使用 外面时候的时候会报错
4)
protected 受保护的 类的内部使用
外部不能使用 继承的时候运行在外部使用
5)
protected 继承时可以在外部使用
这样使用是这样的
class Tercher extends Person{
public sayBye(){
return this.name;
}
}
总结一下 :
1、public 内部 外部
2、protected 内部 外部继承可用
3、private 内部使用 外部不可以(继承也不可以)
本节完