作者spiderman007 (千里之外)
看板java
标题[问题] 请问继承抽象类别时...??
时间Tue Aug 23 23:30:50 2011
abstract class CShape{
protected String color;
public void setColor(String str){
color=str;
}
}
class CRectangle extends CShape{
protected int width,height;
public CRectangle(int w, int h){
width=w;
height=h;
}
public void show(){
System.out.print("color="+color);
System.out.println(", area="+width*height);
}
}
class CCircle extends CShape{
protected double radius;
public CCircle(double r){
radius=r;
}
public void show(){
System.out.print("color="+color);
System.out.println(", area="+3.14*radius*radius);
}
}
public class ex11_4{
public static void main(String[] args){
CRectangle rect = new CRectangle(5,10);
//当建立此建构元时,为何不用呼叫父类别(抽象类别的建构元)...
//能正确执行...??
rect.setColor("Yellow");
rect.show();
CCircle cir = new CCircle(2.0);
cir.setColor("Green");
cir.show();
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.46.120.179
1F:推 lachtchlee:不清础所问 但建议CShape rect= new CRectangle(5,10); 08/23 23:45
2F:推 No:他CShape没有show() method,改CShape rect就掰了 08/23 23:53
3F:推 lachtchlee:是的 没仔细看 08/23 23:55
4F:→ No:这code父类别建构元没东西,不呼叫没影响,通常呼叫是要初始化 08/23 23:58
5F:→ spiderman007:当执行到CRectangle(int ,int )建构元时... 08/24 00:01
6F:→ spiderman007:没东西...了解了...谢谢.. 08/24 00:02
7F:→ adrianshum:子类别 ctor 之前其实会自动跑父类别的 ctor 08/24 08:53
8F:→ No:是的,会自动呼叫~ 08/25 02:33
9F:推 shaopin:呼叫的是default, 若有想要呼叫有引数的 还是要explicit 08/25 13:53
10F:推 shaopin:呼叫父类的ctor 08/25 13:55
11F:→ sk8er411:抽象类别不是不能直接呼叫吗? 09/06 09:49