介面和父類具有同名屬性、方法過載
阿新 • • 發佈:2019-02-01
import java.util.ArrayList; import java.util.List; /**1.當介面和父類中具有相同的屬性名,而自己沒有這個變數又需要使用時,需要指定具體使用父類中的成員變數還是介面中的成員變數 * 2.方法前面只考慮方法的名稱、引數型別、引數個數、引數順序, 不考慮方法的返回型別。 也就是說不能用返回型別來區分過載方法 * 3. 泛型作為方法的引數時,會進行型別的擦除。 例如 List<String> 和 List<Integer>對方法計算簽名來說,其和List是一樣的作用 * 4. 過載的兩個方法引數一個型別父類型別,一個為子類型別, 則在方法呼叫時傳入宣告型別和實際型別都為子類型別的實參時,會抱編譯錯誤, * 因為兩個過載的方法都能匹配這個呼叫。 也就是說呼叫過載方法時,實參可以自動匹配形參為父類型別的方法。 * Created by liaoqianwen on 2016/7/6. */ public class InterfaceExtendsTest { public static void main(String[] args){ List list = new ArrayList<>(); ArrayList list2 = new ArrayList<>(); FanXingTest obj = new FanXingTest(); obj.func(list); // obj.func(list2); } } interface Jiekou{ static final int a =100; public void func1(); } class Class2 { static final int a =1000; static { int c = 2; bb =200; } static int b = 1; static int bb =2; } class Class1 extends Class2 implements Jiekou{ public void func1(){ System.out.println(Class2.a); } } // 泛型測試 class FanXingTest{ public String func(List<String> list){ System.out.println("String"); return "liao"; } public boolean func(ArrayList<Integer> list){ System.out.println("boolean"); return true; } }