1. 创建一个抽象类,包含姓名和拿手菜属性及做菜的抽象方法。 2. 创建一个接口,含有做菜种类的方法。 3. 创建两个人张三和李四分别继承抽象类和实现做菜接口。
时间: 2024-11-03 13:18:05 浏览: 37
一个操作Excle非常方便的工具包(NPOI)及ExcelHelper.cs类
5星 · 资源好评率100%
在面向对象编程中,你可以按照以下步骤创建一个场景:
1. **抽象类示例**:
- 定义一个名为`AbstractCook`的抽象类,它包含成员变量如`name`(姓名)和`specialDish`(拿手菜),同时声明一个抽象方法`cookSpeciality()`,表示做菜的行为。
```java
abstract class AbstractCook {
private String name;
private String specialDish;
public AbstractCook(String name, String specialDish) {
this.name = name;
this.specialDish = specialDish;
}
// 抽象方法
public abstract void cookSpeciality();
// 其他非抽象方法
public String getName() { return name; }
public String getSpecialDish() { return specialDish; }
}
```
2. **接口示例**:
- 创建一个名为`ChefInterface`的接口,其中有一个方法`makeMeal()`,表示可以做各种类型的菜。
```java
interface ChefInterface {
void makeMeal();
}
```
3. **具体实例**:
- 对于`张三`,我们可以定义一个`ConcreteCook张家`类,继承自`AbstractCook`并实现`ChefInterface`:
```java
class ConcreteCook张家 extends AbstractCook implements ChefInterface {
public张家(String name, String specialDish) {
super(name, specialDish);
}
@Override
public void cookSpeciality() {
System.out.println(name + "正在做他的拿手菜:" + specialDish);
}
@Override
public void makeMeal() {
// 实现接口方法,这里假设做的是特殊的家常菜
System.out.println(name + "会制作多种菜品");
}
}
```
- 同样地,对`李四`,我们创建一个实现了`ChefInterface`的`ConcreteChef李四`类:
```java
class ConcreteChef李四 implements ChefInterface {
// 类似张家的构造函数和cookSpeciality方法,但可能有不同的烹饪技巧
@Override
public void makeMeal() {
// 李四的做饭方法...
}
}
```
阅读全文