您的位置:首页 > 编程语言 > Java开发

Java里面接口的多态机制问题

2013-04-20 01:39 183 查看
先看代码

interface Persons {

public final static String name = "PersonsName";

public void eat();

}

class Student implements Persons {

private String name = "Chen";

Student(String name) {

this.name = name;

}

public void eat() {

System.out.println("人吃东西");

}

}

class TestMember {

public static void main(String[] args) {

Persons p = new Student("Chen");

p.eat();

System.out.println(p.name);

}

}

打印结果是:人吃东西

PersonsName

在接口中对方法的调用相当如“强制转化无效”,但是对成员变量却不是这个样子的。

这里可以看成Student p = new Student("Chen");然后强制把Student转换成为Persons类型,但是遵循“强制转化无效”这一原则,我们可以说他依旧是一个学生,所以在调用方法的时候这能调用Student的方法。但是成员变量就不同了,这个时候和方法调用相反,这个时候他是Person类型了,当打印p.name的时候就不是学生名字Chen 而是接口里面的PersonsName。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: