面试题答案
一键面试// 定义Flyable接口,包含fly方法
interface Flyable {
fly(): void;
}
// 定义Swimmable接口,包含swim方法
interface Swimmable {
swim(): void;
}
// 定义Duck类,实现Flyable和Swimmable接口
class Duck implements Flyable, Swimmable {
// 与飞行相关的属性
private flightAltitude: number;
// 与游泳相关的属性
private swimDepth: number;
// 构造函数,初始化属性
constructor(flightAltitude: number, swimDepth: number) {
this.flightAltitude = flightAltitude;
this.swimDepth = swimDepth;
}
// 实现fly方法
fly(): void {
console.log(`鸭子飞行,高度为 ${this.flightAltitude} 米`);
}
// 实现swim方法
swim(): void {
console.log(`鸭子游泳,深度为 ${this.swimDepth} 米`);
}
}
// 创建Duck类实例
const myDuck = new Duck(10, 2);
// 调用fly方法
myDuck.fly();
// 调用swim方法
myDuck.swim();
解释:
- 首先定义了
Flyable
和Swimmable
两个接口,分别规定了fly
和swim
方法。 - 然后创建
Duck
类,通过implements
关键字实现这两个接口,确保Duck
类必须包含这两个接口中定义的方法。 - 在
Duck
类中定义了与飞行高度flightAltitude
和游泳深度swimDepth
相关的私有属性,并在构造函数中初始化这些属性。 - 实现
fly
和swim
方法,在方法中输出相应的信息,展示鸭子的飞行和游泳行为。 - 最后创建
Duck
类的实例myDuck
,并调用fly
和swim
方法,展示鸭子的两种行为。