关于子类实例化父类对象

以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();

    }
}

  

 

posted on 2018-03-08 15:39  三盛乙烯  阅读(1492)  评论(0)    收藏  举报

导航