Chinaunix首页 | 论坛 | 博客
  • 博客访问: 211094
  • 博文数量: 38
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 410
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-09 12:32
文章分类

全部博文(38)

文章存档

2011年(1)

2008年(12)

2007年(25)

我的朋友

分类: Java

2008-11-04 21:29:00

本以为自己对面向对象的封装、继承、多态已经了解得很清楚了。

没想到,今天的一道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) |
给主人留下些什么吧!~~