红包是中国文化中常见的一种礼物形式,它代表着祝福和好运。在这个练习中,我们将使用Java编写一个简单的红包程序,通过继承来扩展不同类型的红包。让我们开始吧!
首先,我们需要创建一个基础的红包类(Envelope),它包含了红包的基本属性和方法。在这个类中,我们将定义红包的金额、发送者和接收者,并提供一些必要的方法来操作红包。下面是基础红包类的代码:
public class Envelope {
private double amount;
private String sender;
private String receiver;
public Envelope(double amount, String sender, String receiver) {
this.amount = amount;
this.sender = sender;
this.receiver = receiver;
}
public double getAmount() {
return amount;
}
public String getSender() {
return sender;
}
public String getReceiver() {
return receiver;
}
public void displayDetails() {
System.out.println("Sender: " + sender);
System.out.println("Receiver: " + receiver);
System.out.println("Amount: $" + amount);
}
}
现在,我们将创建一个继承自基础红包类的特殊红包类(SpecialEnvelope),用于表示特殊类型的红包。这个特殊红包类将具有额外的属性和方法,以及对基础方法的扩展。下面是特殊红包类的代码示例:
public class SpecialEnvelope extends Envelope {
private String occasion;
public SpecialEnvelope(double amount, String sender, String receiver, String occasion) {
super(amount, sender, receiver);
this.occasion = occasion;
}
public String getOccasion() {
return occasion;
}
public void displayDetails() {
super.displayDetails();
System.out.println("Occasion: " + occasion);
}
}
在上面的代码中,我们使用了extends
关键字来继承基础红包类。特殊红包类新增了一个occasion
属性,表示红包的特殊场合。我们还重写了displayDetails()
方法,以便在输出红包详细信息时包含特殊红包的场合信息。
现在,我们可以使用这些类来创建红包对象并测试它们的功能。以下是一个简单的示例:
public class Main {
public static void main(String[] args) {
Envelope envelope = new Envelope(50.0, "John", "Amy");
envelope.displayDetails();
System.out.println();
SpecialEnvelope specialEnvelope = new SpecialEnvelope(100.0, "Mike", "Sarah", "Birthday");
specialEnvelope.displayDetails();
}
}
在上面的示例中,我们首先创建了一个普通红包对象(Envelope),并调用displayDetails()
方法来显示红包的详细信息。然后,我们创建了一个特殊红包对象(SpecialEnvelope),并同样调用displayDetails()
方法来显示特殊红包的详细信息。你可以根据需要修改红包的金额、发送者、接收者和场合信息来进行测试。
继承是面向对象编程中的重要概念,它允许我们通过扩展现有类来创建新的类,并继承和重用已有类的属性和方法。通过继承,我们可以构建出更加灵活和可扩展的代码结构。希望这个继承练习对你有所帮助!