只要实现的某一个接口, 那么就必须实现接口中所有的属性和方法
错误示例:
interface PersonInterface {
name: string;
say(): void;
}
class Person implements PersonInterface {
name: string = 'BNTang';
}
let p = new Person();
p.say();
正确示例:
interface PersonInterface {
name: string;
say(): void;
}
class Person implements PersonInterface {
name: string = 'BNTang';
say(): void {
console.log(`我的名字叫:${this.name}`);
}
}
let p = new Person();
p.say();
定义一个 Person
类如下:
class Person {
name: string = 'BNTang';
age: number = 18;
say(): void {
console.log(`name = ${this.name}, age = ${this.age}`);
}
}
声明
, 不会继承属性和方法的 实现
class Person {
name: string = 'BNTang';
age: number = 18;
say(): void {
console.log(`name = ${this.name}, age = ${this.age}`);
}
}
interface PersonInterface extends Person {
gender: string;
}
class Student implements PersonInterface {
gender: string = 'male';
name: string = 'zs';
age: number = 18;
say(): void {
console.log(`name = ${this.name}, age = ${this.age}, gender = ${this.gender}`);
}
}
let stu = new Student();
stu.say();
protected
的属性和方法, 那么就只有这个类的 子类
才能实现这个接口包含
protected
属性的情况
错误示例:
class Person {
protected name: string = 'BNTang';
age: number = 18;
say(): void {
console.log(`name = ${this.name}, age = ${this.age}`);
}
}
interface PersonInterface extends Person {
gender: string;
}
class Student implements PersonInterface {
gender: string = 'male';
name: string = 'zs';
age: number = 18;
say(): void {
console.log(`name = ${this.name}, age = ${this.age}, gender = ${this.gender}`);
}
}
let stu = new Student();
stu.say();
正确示例:
class Person {
protected name: string = 'BNTang';
age: number = 18;
say(): void {
console.log(`name = ${this.name}, age = ${this.age}`);
}
}
interface PersonInterface extends Person {
gender: string;
}
class Student extends Person implements PersonInterface {
gender: string = 'male';
name: string = 'zs';
age: number = 18;
say(): void {
console.log(`name = ${this.name}, age = ${this.age}, gender = ${this.gender}`);
}
}
let stu = new Student();
stu.say();
包含
protected
方法的情况
错误示例:
class Person {
name: string = 'BNTang';
age: number = 18;
protected say(): void {
console.log(`name = ${this.name}, age = ${this.age}`);
}
}
interface PersonInterface extends Person {
gender: string;
}
class Student implements PersonInterface {
gender: string = 'male';
name: string = 'zs';
age: number = 18;
say(): void {
console.log(`name = ${this.name}, age = ${this.age}, gender = ${this.gender}`);
}
}
let stu = new Student();
stu.say();
正确示例:
class Person {
name: string = 'BNTang';
age: number = 18;
protected say(): void {
console.log(`name = ${this.name}, age = ${this.age}`);
}
}
interface PersonInterface extends Person {
gender: string;
}
class Student extends Person implements PersonInterface {
gender: string = 'male';
name: string = 'zs';
age: number = 18;
say(): void {
console.log(`name = ${this.name}, age = ${this.age}, gender = ${this.gender}`);
}
}
let stu = new Student();
stu.say();
本期结束咱们下次再见👋~
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。