初学Java,很多人都说Java中没有多继承,但是有多实现,我也明白其中的意思,
但是学习过程中发现Java中其实存在多继承的,它存在于接口与接口之间,不知道这种多继承的存在意义是什么?
import static java.lang.System.*;
public class ExtendsTest implements A {
public static void main(String[] args) {
ExtendsTest et = new ExtendsTest();
et.a();
et.b();
et.c();
}
}
interface A extends B, C {
default void a() {
out.println("------A------");
}
}
interface B {
default void b() {
out.println("------B------");
}
}
interface C {
default void c() {
out.println("------C------");
}
}
意义在于编写更容易理解的程序。
任何编程语言都有冗余的语法,也就是说,包含大量并非必要的语法,语言包含这样的语法越多,它就越好用。
好比为什么类型可以嵌套?
class Face
{
public Eye eye;
}
class Eye
{
public Color color;
public Location location;
}
class Location
{
public int x;
public int y;
}
而不是
class Face
{
public Color eyecolor;
public int eyelocationx;
public int eyelocationy;
}
因为分类让代码逻辑上更直观。
使用接口的核心原因是,为了能够向上转型为多个基类型。即利用接口的多实现,可向上转型为多个接口基类型。
使用多继承,代码可复用,各层之间可以通过接口来通信而不用管实现,每次修改只要改实现就可以了。而接口不会改变
在逻辑上让接口的关系更清晰。
好像拼插积木,单块可以拿去用在别的地方,组合起来拥有一个更的的逻辑抽象。
这是从设计的角度来说的。