① java中继承和接口的区别
理论上:类只能单继承,接口可以多继承(接口应该叫实现);
实践上:我们说类的继承一般继承的是事物的属性,如:姓名,年龄,性别 等,而接口的继承(或者说实现)一般是继承事物的行为,如:行走,飞翔,游泳(这比较抽象,在一般项目中大部分是指对某事物的增删改查等操作)
总之,单继承描述了“is a”的关系,即“子is a父”;
多继承描述了“can do”的关系,即“子can do父”。
这是我的笔记珍藏,希望对你有启发。
② java 实现接口和继承有什么区别
首先的话,在 Java 中应该说“扩展”(extend)而不是“继承”(inherit),尽管知道它实现上就是C++那种继承,但逻辑上是不完全相同的。
再考虑到接口即协议,对接口的扩展,或是说对协议的扩展,实际上就包括了对其公用方法的扩展以及对其定义的扩展两个方面,其中扩展接口定义实际上即为对协议添加更多的约束,在减少了其可能包含的类的种类的同时也给了这些类更清晰的定义,也就允许用户基于这更清晰的定义做出更多的操作了。
所以呢,实际类的扩展实际上和继承是相同的,子类确实继承了父类的实现,但接口的扩展则只会获取到父接口的方法声明,继承的意味并不明显,更多的实际上在于对其原协议的扩展,因此应将子接口和父接口间的关系视为扩展而不单单是继承
其实就是多去思考为什么在Java这叫扩展不叫继承,很多问题就迎刃而解了
③ java接口可以继承多个接口吗
一个接口可以继承多抄个接口.
interface C extends A, B {}是可以的.
一个类可以实现多个接口:
class D implements A,B,C{}
但是一个类只能继承一个类,不能继承多个类
class B extends A{}
在继承类的同时,也可以继承接口:
class E extends D implements A,B,C{}
这也正是选择用接口而不是抽象类的原因
④ java中一个接口可以继承几个接口吗
可以,接口是常量值和方法定义的集合,是一种特殊的抽象类,可以继承多个接口。例如:Interface3 Extends Interface0, Interface1, interface……。
java接口解析如下:
在Java中,定义一个接口的形式如下:
[public] interface InterfaceName {
}
接口中可以含有变量和方法。但是要注意,接口中的变量会被隐式地指定为public static final变量,而方法会被隐式地指定为public abstract方法且只能是public abstract方法,并且接口中所有的方法不能有具体的实现、
也就是说,接口中的方法必须都是抽象方法。
要让一个类遵循某组特地的接口需要使用implements关键字,具体格式如下:
class ClassName implements Interface1,Interface2,[....]{
}
可以看出,允许一个类遵循多个特定的接口。如果一个非抽象类遵循了某个接口,就必须实现该接口中的所有方法。对于遵循某个接口的抽象类,可以不实现该接口中的抽象方法。
(4)java接口继承接口扩展阅读:
java继承接口的特性:
1)一个类如果实现了一个借口,则要实现该接口的所有方法。
2)方法的名字、返回类型、参数必须与接口中完全一致。如果方法的返回类型不是void,则方法体必须至少有一条return语句。
3)因为接口的方法默认是public类型的,所以在实现的时候一定要用public来修饰(否则默认为protected类型,缩小了方法的使用范围)。
⑤ 接口是否可继承接口(java)
Java语法中,接口可以继承接口,抽象类可以实现接口,抽象类可以继承实体类。
Java语法中,使用interface定义一个接口,使用class定义一个类,使用关键字abstract + class定义一个抽象类。以下分别对这3个知识点进行解析:
1、接口可以继承接口
接口可以多继承接口,例如:Interface1 Extends Interface2, Interface3, Interface4……
代码示例为:
public interface Interface1 {
public void method1();
}
public interface Interface2 extends Interface1 {
public void method2();
}
public interface Interface3 extends Interface1, Interface2 {
public void method3();
}
(5)java接口继承接口扩展阅读:
1、Java继承或实现接口时需要遵循的原则:
(1)类优先于接口。 如果一个子类继承的父类和接口有相同的方法实现。 那么子类继承父类的方法。
(2)子类型中的方法优先于父类型中的方法。
(3)如果以上条件都不满足, 则必须显示覆盖/实现其方法,或者声明成abstract。
2、Java实现多继承的方式:
(1)Java中一个类不能继承多个具体class。
(2)一个类只可继承自一个具体 class,但可实现多个接口。 interface不涉及到实现细节,不与任何存储空间有关连。新类可继承自一个具象class,其余继承都得是interfaces。
(3)outer class不可继承自多个具体class,可在其内部设多个inner class,每个inner class都能各自继承某一实现类。inner class不受限于outer class是否已经继承自某一实现类。
(4)inner class可以说是多重继承问题的完整解决方案。一个类不能继承自多个一般类。但我们可以让其内部的多个inner class各自继承某一实现类达到类似的目的。