有代码Demo7.java如下:
/**
接口练习:
笔记本 extends 计算机 implements 数码相机(视频功能),投影仪(投影功能)
*/
class Computer { //定义一个计算机类
public String name;
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 { //笔记本电脑继承计算机类,实现数码相机视频功能,实现投影仪投影功能
public NoteBookComp() {
//super("宏基笔记本电脑");
}
public NoteBookComp(String name) {
super.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(nbc.name); //问题2,希望输出结果是"宏基笔记本电脑"
nbc.getWeb();
nbc.takePhoto();
nbc.takeShadow();
}
}
问题:我想在main方法中访问到对象nbc所属类的父类Computer中的属性name,提示
Demo7.java:53: 对 name 的引用不明确,Computer 中的 变量 name 和 Camera 中的 变量
name 都匹配
System.out.println(nbc.name); //问题??
^
1 错误
我知道问题所在是:类Computer中的属性name 和 接口Camera中的属性name 和 接口Shadow中的属性name冲突了,
所以就报错,我的提问是:若不修改 接口Camera中的属性name 和 接口Shadow中的属性name 这两个变量名称,使用之不与
类Computer中的属性name冲突,有没有办法获取到对象nbc所属类的父类Computer中的属性name,即希望输出结果是"宏基笔记本电脑"。
JAVA抽象类、接口继承的疑惑
抽象类b实现接口a,他可能没有完全实现a的方法。b可以有自己的新方法。c类继承接口a,他可以获得a里面所有的抽象方法,常量属性,内部类,枚举等等。d继承b同时实现c,就是吧上面两个情况综合一下,如果b实现a的某方法,那么d中调用的就是b实现的这个,如果b中没实现a的方法,d中也可以访问a的这个...
java继承抽象类和接口问题
1.抽象类,不能实例化,也就是不能new,也就是不能创始对象。你可以这么理解:抽象,就是模糊的概念,相当于人们说的经常说的概念车之类的,为什么叫概念车,是因为只有个大概的模型,很多技术(在java里我们称之为方法)没有实现,所以不能造出车子(java中我们就是不能new啦)。当然只有解决所以技...
java继承和接口的2个问题
第一题 A 错。java中的类没有多继承的概念,不可能有多个直接父类。只有接口才支持多继承。B 对。C 对。D 对。所以答案选A。第二题 A 错。接口中只有抽象方法,不可能有普通方法。B 错。接口中的成员变量默认的都是静态常量(static final)。所以不可以修改。C对。接口可以继承接口,而且一个...
java中一个类不能同时继承一个类和实现一个接口
java中一个类不能同时继承一个类和实现一个接口是错误的。接口和抽象类都能描述一般性的公有特征,一般来说,强是关系清晰地描述了父子关系,应该用类模拟,比如苹果是一种水果。而弱是关系是指对象具有某种属性,适合用接口模拟,比如苹果是可以吃的。由于子类只能扩展一个父类,而能实现多个接口,所...
...一个已经实现好的类,要么继承抽象类,要么实现接口
首先:继承的目的:是把在某个类在设计之初是,某个方法的功能不太清楚,或相同的方法在它的子类中的功能不相同,所以才把这个类设计成抽象类,使得编码,更灵活 注:一个类是可以继承一个实现好的类的 然后:继承\/实现接口的好处 1、可以重用代码,减少相同代码的重复编写 2、多态,使得父类\/继承...
java继承问题; 一个类继承了接口,必须实现接口里的抽象方法,否则报错...
因为子类继承父类是,就自动继承了父类中的所有非私有方法。所以相当于子类已实现了这些方法。就不用必须显式实现接口中定义的方法了(当然子类也可以自行实现这些方法,从而覆盖父类中的相应方法)
java中抽象类和接口的区别?
抽象类是被用来创建继承层级里子类的模板。 接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。接口只是一种形式,接口自身不能做任何事情。 扩展资料: 抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,...
java 中普通类继承,抽象类继承,接口类继承,子类一定要重写父类中的方 ...
不一定。1. 普通类继承,并非一定要重写父类方法。2. 抽象类继承,如果子类也是一个抽象类,并不要求一定重写父类方法。如果子类不是抽象类,则要求子类一定要实现父类中的抽象方法。3. 接口类继承。如果是一个子接口,可以扩展父接口的方法;如果是一个子抽象类,可以部分或全部实现父接口的方法;...
【JAVA基础】一个案例搞懂类、对象、重载、封装、继承、多态、覆盖...
初学JAVA时,总会对一些概念一知半解,相互混淆,不明其设计的用意,如类、对象、重载、封装、继承、多态、覆盖、抽象类、接口概念。为便于理解和巩固,本文将基于一个案例及其变形,展现各个概念的定义、设计用意、使用规范和注意事项。长文警告,建议先收藏后阅读!为控制篇幅,本文将分上中下三篇讲解...
java抽象类或接口被继承后方法一定要重写吗
其他必须重写,接口的方法必须重写,接口和抽象类中只有方法名,没有定义的,如果你不定义 也就是空方法,接口就是为了弥补java不能多重继承,接口针对的是对象而不是实现。实现的部分可以交由对象去实现。这就是java中的多态啊。好好思考一下上面的几句话就行了。一定要对java的基本理论清楚。