1. 程式人生 > >介面和父類具有同名屬性、方法過載

介面和父類具有同名屬性、方法過載

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;

    }
}