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("你好");
}
}
怎么用接口的引用调用实现类中重写的方法,是不是无法调用啊
public class Teacher {
private static Person per;
public static void main(String[] args) {
Person person=new Student();
person.show();
}
}
interface Person {
public abstract void show();
}
class Student implements Person{
@Override
public void show() {
System.out.println("你好");
}
}
Perso怎么用接口的引用调用实现类中重写的方法:
兄弟加入这条语句
Person person=new Student();
person.show();
Person作为接口被引用,而实际对象是new Student(),通过 对象.方法名(),实现重写
就通俗一点,突然想到的,不知道听不听的懂哈
你爸爸(爸爸比喻为接口)有一件东西(东西比喻为方法)--即接口中的方法,别人来到家门口需要借它来用一用,但是你爸现在不在家也没空(接口,不可以直接创建类调用,只能通过实现类对象调用),但是你(你比喻为实现类)知道那东西在那里,所以只能由你来拿(拿比喻为调用)那件东西给别人.
大佬看到了觉得我说的不行或者误人子弟的,说我一下哈,秒删
public class Teacher {
private static Person per;
public static void main(String[] args) {
per = new Student();
per.show();
}
}
要将实现类对象赋给接口的引用,多态的概念,编译时会以实现类为模板创建对象,赋值给Person类型的变量per后就能够使用per来调用实现类Student的方法了