14. jvm之多态

1. 多态方法不同方法的参数为父子对象时的调用原则

调用main方法时,会发现多态方法执行的原则是声明的类的对象与方法的参数是否匹配,而非对象的实例与方法的参数是否匹配

接口

package com.kevin;
public interface Inter{
    public void dth();	
    public void accept(Test t );
}

实现类

package com.kevin;

public class InterImpl implements Inter{
    public void dth(){
        System.out.println("t.test");
    }
    public void accept(Test t){
        t.test(this);
    }
}

客户端

package com.kevin;
public class Test{
    public static void main(String[] args) {
        Test test = new Test();
        Inter t1 = new InterImpl();
        test.test(t1);//print 1
        InterImpl t2 = new InterImpl();
        test.test(t2);//print 2
        System.err.println("------------------");
        t1.accept(test);// print 2
        t2.accept(test);// print 2
    }

    public void test(Inter t){
        System.err.println("print 1");
        t.dth();
    }

    public void test(InterImpl t){
        System.err.println("print 2");
        t.dth();
    }
}