一个Java程序关于继承抽象类和实现接口的问题

2024-11-22 00:46:09
推荐回答(3个)
回答1:

class Computer { //定义一个计算机类
public static String name;//我加的static

public Computer() {

}

public Computer(String name) {
this.name = name;
}

public void getWeb() {
System.out.println("电脑功能:上网");
}
}

interface Camera { //定义一个数码相机类
String name = "佳能数码相机";
public abstract void takePhoto();
}

interface Shadow { //定义一个投影仪类
String name = "索尼投影仪";
public abstract void takeShadow();
}

class NoteBookComp extends Computer implements Camera,Shadow { //笔记本电脑继承计算机类,实现数码相机视频功能,实现投影仪投影功能

String name ;//我加的

public NoteBookComp() {
//super("宏基笔记本电脑");
}

public NoteBookComp(String name) {
super(name);
this.name=name;

}

public void takePhoto() {
System.out.println("视频");
}

public void takeShadow() {
System.out.println("投影");
}
}

class Demo7 {
public static void main(String[] args) {
NoteBookComp nbc = new NoteBookComp("宏基笔记本电脑");
System.out.println(Computer.name);
System.out.println(nbc.name); //问题2,希望输出结果是"宏基笔记本电脑"
nbc.getWeb();
nbc.takePhoto();
nbc.takeShadow();
}
}

我其实也不知道你说啥,这样改了,没啥冲突。
大家多多指教。

回答2:

通过方法访问对象的属性:在NoteBookComp类中加入一个方法如下:
public String getName(){
return super.name;
}
main中的System部分用方法获取name:
System.out.println(nbc.getName());
其他部分不用改,使用这种方式就能打到你想要的目的。

回答3:

不好意思,看错要求了,再帮你看看