【发布时间】:2013-07-14 22:18:26
【问题描述】:
我正在尝试练习多态性和使用类。我写了一个名为Card 的超类。然后我写了 3 个子类:IDCard、CallingCard 和 DriverLicense。然后我编写了另一个名为 Billfold 的类,它应该包含两张卡的插槽。
我应该编写一个BillfoldTester 程序,它将不同子类的两个对象添加到Billfold 对象中。
在BillfoldTester 中,DriverLicense 对象和CallingCard 对象被实例化并添加到Billfold,后者通过Card 引用来引用这些对象。
我真的不明白如何做到这一点。我创建了两个Card 对象,但我试图将它添加到我的Billfold 中,但它不会工作。我尝试了Billfold a = new Card (x);,但它不正确......非常感谢任何帮助。
public class BillfoldTester
{
public static void main (String[]args)
{
Card x= new IDCard("Julie", 1995);
Card j= new DriverLicense("Jess", 1997);
//Having trouble trying to put the objects into my Billfold and print it.
}
}
public class Billfold extends Card
{
private String card1;
private String card2;
void addCard(String Card)//Not sure if this should be String
{
card1=Card;
}
}
public class Card
{
private String name;
public Card()
//This is my superclass
{
name = "";
}
public Card(String n)
{
name = n;
}
public String getName()
{
return name;
}
public boolean isExpired()
{
return false;
}
public String format()
{
return "Card holder: " + name;
}
}
public class IDCard extends Card
{
//This is one of my subclasses
private int IDNumber;
public IDCard (String n, int id)
{
super(n);
this.IDNumber=id;
}
public String format()
{
return super.format() + IDNumber;
}
}
【问题讨论】:
-
理论上,当 B 类扩展 A 类时,这意味着 B 是某种更特殊的 A,B 可以表现得像 A。
IDCard是特殊的Card,可以做Card的一切都可以。但是你能说一下钱包吗?
标签: java class object subclass superclass