以Collection接口為例:
Collection接口有兩個子接口——List接口和Set接口.
其中,ArrayList是List接口的子類.
因此,既可以用ArrayList為上一層的List接口實例化,
也可以為上上層的Collection接口實例化.
子接口肯定比父接口的方法多(因為子接口擴充了父接口的方法),
因此,實例化Collection接口所能調用的方法,肯定比實例化ArrayList接口所能調用的方法少.
package prepare1;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
interface A{
public void func1();
public void func2();
}
class B implements A{
@Override
public void func1() {
System.out.println("一號方法");
}
@Override
public void func2() {
System.out.println("二號方法");
}
public void func3() {
System.out.println("三號方法");
}
}
public class Test {
public static void main(String[] args) {
A a = new B();//實例化接口A
B b = new B();//實例化普通類B
//如果實例化的是接口,則只能調用接口中的方法
a.func1();
a.func2();
//如果實例化的是類,則既可以調用父接口的方法,也可以調用自己內部定義的方法
b.func1();
b.func2();
b.func3();
}
}
