建立抽象类和建立普通类的区别在哪里
时间: 2024-03-31 16:38:54 浏览: 11
C++中建立抽象类和建立普通类的区别主要在于是否包含纯虚函数。
抽象类是一种特殊的类,不能被实例化,只能被用作父类来派生子类。抽象类可以包含成员变量、成员函数和纯虚函数。纯虚函数是一种没有函数体的虚函数,必须在子类中被实现。抽象类可以作为一种接口来使用,提供一些默认的实现,同时也可以通过纯虚函数强制子类去实现某些特定的行为或功能。
普通类是一种可以被实例化的类,可以包含成员变量和成员函数。其成员函数可以是虚函数,也可以是普通的函数。普通类一般用来描述具体的对象和行为,而不是作为一种接口来使用。
因此,建立抽象类和建立普通类的区别在于抽象类中必须包含纯虚函数,而普通类中则不需要。抽象类是一种抽象的概念,普通类则是一种具体的实现。
相关问题
建立一个java抽象类drink
好的,我可以为您创建一个Java抽象类Drink,如下所示:
```
public abstract class Drink {
// 定义抽象方法,用于获取饮料名称
public abstract String getName();
// 定义抽象方法,用于获取饮料的价格
public abstract double getPrice();
// 定义普通方法,用于展示饮料的信息
public void display() {
System.out.println("饮料名称:" + getName());
System.out.println("饮料价格:" + getPrice());
}
}
```
这个抽象类中包含两个抽象方法,分别用于获取饮料的名称和价格。同时也包含一个普通方法display,用于展示饮料的信息。由于这是一个抽象类,因此不能直接实例化,需要通过继承这个类来创建具体的饮料类。
利用抽象类编写一个程序实现公交车卡售票管理。当输入为“老年卡”、“学生卡”和“普通卡”时显示不同的卡类,及购票金额(“老年卡”购票金额=原价*50%、“学生卡”购票金额=原价*60%、“普通卡”购票金额=原价*95%)。 具体实现步骤: 第一步:建立公交卡(boardingcard)的结构
首先,我们可以建立一个抽象类`BoardingCard`,它具有一个抽象方法`getType()`,用于返回卡的类型。此外,我们还可以在这个抽象类中包含一个抽象方法`getPrice()`,用于返回购票金额。
第二步:定义公交卡的三个类型
接下来,我们可以定义三个类来表示公交卡的三种类型:`SeniorCard`(老年卡)、`StudentCard`(学生卡)和`NormalCard`(普通卡)。这三个类分别继承自`BoardingCard`类,并实现`getType()`和`getPrice()`方法。
第三步:实现卡类的判断和购票功能
最后,我们可以编写一个类来实现公交卡的售票管理。该类可以包含一个方法,用于根据输入的卡类型创建对应的公交卡对象,并调用`getPrice()`方法来获取购票金额。
以下是使用Java语言编写的程序的示例代码:
```
// 定义抽象类BoardingCard
public abstract class BoardingCard {
public abstract String getType(); // 返回卡的类型
public abstract double getPrice(); // 返回购票金额
}
// 定义公交卡的三个类型
public class SeniorCard extends BoardingCard {
@Override
public String getType() {
return "老年卡";
}
@Override
public double getPrice() {
// 老年卡购票