怎么用接口的引用调用实现类中重写的方法,谢谢求解啦?

2021-02-23 19:46发布

public class Teacher { private static Person per; public static void main(String[] args) { per.show();//输出的空指针异常 //怎么用接口的引用调用实现类中重写的方法 } } interface Person { public abstract void show(); } class Student implements Person{ @Override public void show() { System.out.println("你好"); } }

怎么用接口的引用调用实现类中重写的方法,是不是无法调用啊

1条回答
希魔王的塔罗牌
1楼-- · 2021-02-23 20:09
public class Teacher {
    private static Person per;
    public static void main(String[] args) {
        per = new Student();
        per.show();
    }
}

要将实现类对象赋给接口的引用,多态的概念,编译时会以实现类为模板创建对象,赋值给Person类型的变量per后就能够使用per来调用实现类Student的方法了