初学Java, 关于继承的例子

happyliuliming happyliuliming 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
书上的例子,为毛跟书上答案不同。
1.为什么“创建荧光灯”之后,不先出现"构造 Lamp..."?
2.还有下面两句什么意思?
public Filament getFilament(){
return filament;
}
public void setFilament(Filament filament){
this.filament=filament;
}

run:
创建白炽灯
构造 Lamp...
开始构造灯丝...
开始创建白炽灯...
创建荧光灯
开始构造灯丝...
构造 Lamp...
开始创建荧光灯...
创建节能灯
构造 Lamp...
开始创建荧光灯...
开始创建节能灯...
BUILD SUCCESSFUL (total time: 0 seconds)
//------------
public class LampTest{
public LampTest(){
System.out.println("构造 Lamp...");
}
public void light(){
System.out.println("发光...");
}
public static void main(String[] arguments){
System.out.println("创建白炽灯");
IncandecentLamp iLamp=new IncandecentLamp();
System.out.println("创建荧光灯");
LuorescentLamp l1=new LuorescentLamp();
System.out.println("创建节能灯");
EnergySavingLamp el=new EnergySavingLamp();
}
}

class Filament{
public Filament(){
System.out.println("开始构造灯丝...");
}
}
class IncandecentLamp extends LampTest{
private Filament filament=new Filament();
public IncandecentLamp(){
System.out.println("开始创建白炽灯...");
}
public Filament getFilament(){
return filament;
}
public void setFilament(Filament filament){
this.filament=filament;
}
}
class LuorescentLamp extends LampTest{
public LuorescentLamp(){
System.out.println("开始创建荧光灯...");
}
private static Filament filament=new Filament();
public static Filament getFilament(){
return filament;
}
public static void setFilament(Filament filament){
LuorescentLamp.filament=filament;
}
}
class EnergySavingLamp extends LuorescentLamp{
public EnergySavingLamp(){
System.out.println("开始创建节能灯...");
}
}
...全文
评论 2
收藏 已收藏
分享
返回顶部
happyliuliming
Java SE 62,621 成员 307,251 内容