这篇“Java8中的默认方法和多重继承实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java8中的默认方法和多重继承实例分析”文章吧。
多重继承是一些面向对象的计算机编程语言的一个特性,其中一个对象或类可以从多个父对象或父类继承特性和特性。
Java 8 中的默认方法可以看作是一种多重继承的形式(除了属性不能被继承)。考虑下面的示例,Button
类实现了两个接口 - Clickable
和 Accessible
。
每个接口定义一个默认方法。因此,Button
类可以从两个接口调用方法。这就像多重继承。
interface Clickable{
default void click(){
System.out.println("click");
}
}
interface Accessible{
default void access(){
System.out.println("access");
}
}
public class Button implements Clickable, Accessible {
public static void main(String[] args) {
Button button = new Button();
button.click();
button.access();
}
}
如果两个实现的接口都定义了一个具有相同方法签名的默认方法,那么实现类不知道使用哪个默认方法。实现类应该明确指定要使用的默认方法或定义它自己的方法。在下面的示例中,Clickable
和 Accessible
都定义了 print()
方法。在 Button
类中,print()
方法指定了默认方法。
interface Clickable{
default void click(){
System.out.println("click");
}
default void print(){
System.out.println("Clickable");
}
}
interface Accessible{
default void access(){
System.out.println("access");
}
default void print(){
System.out.println("Accessible");
}
}
public class Button implements Clickable, Accessible {
public void print(){
Clickable.super.print();
Accessible.super.print();
}
public static void main(String[] args) {
Button button = new Button();
button.click();
button.access();
button.print();
}
}
默认方法背后的主要动机是,如果在某个时候我们需要向现有接口添加一个方法,我们可以在不更改现有实现类的情况下添加一个方法。这样,接口仍然兼容旧版本。这是一个很酷的功能。但是,我们应该记住使用默认方法的动机,并应该保持接口和实现的分离。
以上就是关于“Java8中的默认方法和多重继承实例分析”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。