多重继承
在实际开发中,经常会遇到面向对象的一些问题,比如「多重继承」,还原案发现场,整个过程大概是这样:
接口 B 继承接口 A,接口 A 和接口 B 拥有相同的方法;C 是独立接口(方法和 A、B 一模一样);类 D 是独立的类,有和接口 A、B 相同的方法。
问题:
第一种情况:类 E 同时实现接口 A 和接口 B 时,会调用哪个接口的方法?
答:会调用A接口的方法。
第二种情况:类 E 继承 D,同时实现接口 A 和接口 B 时,会调用哪个方法?
答:会调用D类的方法
第三种情况:类 E 同时实现接口 A、接口 B 和接口 C 时,会调用哪个方法?
答:会调用A接口的方法
第四种情况:类 E 继承 D,且同时实现接口 A、接口 B 和接口 C 时,会调用哪个方法?
答:会调用D类的方法
抽象类和接口的区别
接口(interface): 接口在java中是一个抽象类型,是抽象方法的集合。一个类通过继承接口的方式,从而继承接口的抽象方法。从定义上看,接口是个集合,并不是类。类描述了属性和方法,而接口只包含方法。接口和抽象类一样不能被实例化,但是接口可以被实现(使用 implements 关键字)。实现某个接口的类必须在类中实现该接口的全部方法。接口内的方法都默认添加了abstract关键字。
**抽象类(abstract class):**使用abstract修饰符修饰的类。一个抽象类不能实例化,因为“没有包含足够多的信息来描述一个具体的对象”。但仍然拥有普通类一样的定义。依然可以在类的实体(直白点就是能在{}里面)定义成员变量,成员方法,构造方法等。
抽象类 (abstract class) 和 接口 (interface) 的区别:
- 抽象类中可以有实现的方法,因为有抽象方法所以被叫做抽象类,而接口中只能存在抽象方法。
- 抽象类使用extend关键字来继承抽象类,接口用implement来实现接口。
- 抽象类只能继承一个,接口可以实现多个。
- 抽象类中可以存在构造器,接口中不能含有构造器。
- 抽象类中的方法可以被访问修饰符修饰,但是接口不可以接口默认被public修饰。
感谢您的阅读,如果本篇文章对您有帮助,欢迎点赞,关注,您的阅读是我莫大的鼓励!