本以为自己对面向对象的封装、继承、多态已经了解得很清楚了。
没想到,今天的一道Java笔试题自己却答错了。在这里,记下来,给自己提个醒,多学习。
package edu.dlut.zxf.test2;
interface Hello {
public String getName();
public void sayHello();
}
class Person implements Hello {
public String getName() {
return "Michael";
}
public void sayHello() {
System.out.println(getClassName() + ": " + getName());
}
private String getClassName() {
return "Person";
}
}
public class Student extends Person {
public String getName() {
return "Finux";
}
/*
public void sayHello() {
System.out.println(getClassName() + ": " + getName());
}
*/
/**
* 这个函数没有被用到,是迷惑你的哦
*/
private String getClassName() {
return "Student";
}
public static void main(String[] args) {
Student s = new Student();
s.sayHello();
//下面的代码也是想迷惑人的
Person p = (Person)s;
p.sayHello();
Hello h = (Hello)p;
h.sayHello();
}
}
//打印结果如下:
//Person: Finux
//Person: Finux
|
阅读(1252) | 评论(0) | 转发(0) |