可以多继承接口,但是不能多继承普通类。
类定义属性和方法 描述某一类事物的抽象
而接口定义的是行为 并不限于任何具体意向。
按照逻辑上来说 单继承更明确 一个子类就应该是其父类代表的事物中的某个更具体的类别 不应该即是这种东西又是那种东西 。
而从实用角度上来说 单继承易读 易维护 语义清晰 逻辑清楚。
而接口则不同 接口只定义一些公共行为 比如有两个接口 一个定义了跑这个动作 另一个定义了走这个动作 人这个类就可以同时实现这两个接口所定义的行为 。
类对接口的implements称作实现 不能叫做继承 。
当然 接口可以多继承接口 因为接口只定义行为 并不包含类别的含义 不指代具体的某类事物 而且 从语义上来说 接口对接口的继承称之为扩展更为合适。
一个类不能直接继承多个类,java是单继承语言。
比如说这样:class A extends B,C 不能这样写,因为java不支持多继承。
但是可以像下面这样实现继承多个类:class A extends B,class C extends A,这样C就同时继承了B和A两个类了。
如果是单继承的话,使用extends关键字来完成。
java不支持多继承,但使用接口可以弥补这点,使用implements关键字来完成多个接口的继承。
你可以在网上搜些例子看看。
C
[解析] 本题考查Java中多重继承的概念。首先要区分选项中各个概念,内部类是在一个类小的内部嵌套定义的类,主要用来生成事件适配器。适配器定义一个包装类,包装有不兼容接口的对象。这个包装类指的就是适配器(Adapter),它包装的对象就是适配者(Adaptee),适配器提供客户类需要的接口。接口是―种只含有抽象方法或常量的一种特殊的抽象类,因为接口不包括任何实现,所以与存储空间没有任何关系,将多个接口合并,即多重继承就可以很容易实现,选项C正确,同步主要用在多线程程序设计中。
摘自百度文库,望采纳
1,java 是不可以继承多个类,java是单继承的,但是java 通过 接口可以实现多继承
2,也就是说, 一个java类只能继承一个父类, 但可以有多个接口
3,若子类继承的父类中拥有相同的成员变量,子类在引用该变量时将无法判别使用哪个父类的成员变量。如:
public class classA // 父类 classA
{
private int num = 0;
}
public class classB // 父类 classB
{
private int num = 1;
}
public class classC extends classA,classB // 子类 classC 继承于 classA 和 classB
{
public static void main(String [] args)
{
classC obj = new classC();
objprint(); // 调用父类成员变量 num , 那 num 等于 0 还是 1 ?
}
public void print()
{
Systemoutprintln(supernum);
}
}
2若一个子类继承的多个父类拥有相同方法,同时子类并未覆盖该方法(若覆盖,则直接使用子类中该方法),那么调用该方法时将无法确定调用哪个父类的方法。如:
public class classA // 父类 classA
{
public void fun()
{
Systemoutprint("hello");
}
}
public class classB // 父类 classB
{
public void fun()
{
Systemoutprint("hello");
}
}
public class classC extends classA,classB
{
public static void main(String [] args)
{
classC t = new classC();
tprint();
}
public void print()
{
superfun(); // 调用父类中 fun 方法,但由于classA、classB都有fun()方法,将无法确定使用
// 哪个父类中的方法
}
}
因此,Java仅允许单继承,即一个子类只能继承于一个父类。但为了拓展子类的功能,Java使用接口以克服不使用多继承带来的不足。
接口是一个特殊的抽象类,接口中成员变量均默认为 static final 类型,即常量,且接口中的方法都为抽象的,都没有方法体。
资料来源:>
以上就是关于Java支持多继承吗全部的内容,包括:Java支持多继承吗、java 中怎么样同时继承两个类、java单继承和多继承分别如何实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)