爲什麼要有接口?
談到接口,得先談談繼承。繼承是指孩子繼承父母的功能。
但是有一天,孩子長大了,他們要獨立了,要去找朋友了。找朋友這個功能是父母所不具有的。
解決辦法一:孩子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("找漂亮的女朋友");
}
}