为什么要有接口?
谈到接口,得先谈谈继承。继承是指孩子继承父母的功能。
但是有一天,孩子长大了,他们要独立了,要去找朋友了。找朋友这个功能是父母所不具有的。
解决办法一:孩子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("找漂亮的女朋友");
}
}