温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java8中的默认方法和多重继承实例分析

发布时间:2022-02-28 10:28:55 来源:亿速云 阅读:127 作者:iii 栏目:开发技术

这篇“Java8中的默认方法和多重继承实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java8中的默认方法和多重继承实例分析”文章吧。

多重继承是一些面向对象的计算机编程语言的一个特性,其中一个对象或类可以从多个父对象或父类继承特性和特性。

Java 8 中的默认方法可以看作是一种多重继承的形式(除了属性不能被继承)。考虑下面的示例,Button 类实现了两个接口 - ClickableAccessible

Java8中的默认方法和多重继承实例分析

每个接口定义一个默认方法。因此,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();
	}
}

如果两个实现的接口都定义了一个具有相同方法签名的默认方法,那么实现类不知道使用哪个默认方法。实现类应该明确指定要使用的默认方法或定义它自己的方法。在下面的示例中,ClickableAccessible 都定义了 print() 方法。在 Button 类中,print() 方法指定了默认方法。

Java8中的默认方法和多重继承实例分析

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中的默认方法和多重继承实例分析”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI