08 为什么要有接口?接口与继承的区别?

为什么要有接口?

谈到接口,得先谈谈继承。继承是指孩子继承父母的功能。

但是有一天,孩子长大了,他们要独立了,要去找朋友了。找朋友这个功能是父母所不具有的。

解决办法一:孩子1去单独写一个找朋友的方法findFriend();但是这对父母有很多孩子,每个孩子都要去写一个findFriend()么,这样不是显的特别的啰嗦。

所以使用解决办法二:将findFriend()放入接口里,所有的孩子都可以去找朋友,接口就是另外的扩展功能,它区别于继承的共性功能。

然而,每个孩子找朋友的要求不一样,有的孩子要找漂亮点的,帅点的,有的孩子要找爱学习的,所以找朋友这个方法是非常抽象的方法。那么接口里的方法应都是抽象的,扩展功能只是为了声明孩子长大了要找朋友这件事,至于他们想找什么样的具体的朋友,这是他们重写方法后自己决定的事。

找朋友这件事非常关键,所以找朋友这个接口就显得非常关键了,这也是为什么有接口的主要原因。

 

继承与接口的区别?

继承是指的两者共性的关系。比如去逛超市

而接口是指的扩展功能,比如孩子要去找(男/女)朋友

 

代码表现一下:

 

package com.junc.test;

public class Test {
	public static void main(String[] args) {
		Boy1 boy = new Boy1();
		boy.findBeautiful();
	}
}

abstract class Dad {
	public abstract void shopping();
}

interface FindGirlfriend {	//找女朋友的接口
	public abstract void findBeautiful();	//找漂亮的女朋友
}

class Boy1 extends Dad implements FindGirlfriend {
	public void shopping() {
	}

	public void findBeautiful() {
		System.out.println("找漂亮的女朋友");
	}
}

class Boy2 extends Dad implements FindGirlfriend {
	public void shopping() {
	}

	public void findBeautiful() {
		System.out.println("找漂亮的女朋友");
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值