我最近学了 Java的封装 继承  多态   我不是 很明白   
     希望能有高手能给我说一下他们的定义  以及怎样去用它!

解决方案 »

  1.   

    是OO的...建议LZ可以看点书 (CORE JAVA 之类的。第一章就说这些)。
      

  2.   


    //抽象:概念中的人
    class Person {
    private String name; public void setName(String name) {
    this.name = name;
    } public String getName() {
    return this.name;
    } //人都要吃饭地
    public void dining() {
    }
    }//继承:父亲是人
    class Father extends Person {
    final String FAMIlYNAME = "X"; //父亲习惯用左手吃饭
    public void dining() {
    System.out.println("use lefe hand");
    }
    }//继承:儿子当然也是人,更是父亲的儿子(全是废话,呵呵)
    class Son extends Father { //儿子习惯用右手吃饭
    public void dining() {
    System.out.println("use right hand");
    }
    }public class Test {

    //再次重申人都要吃饭地
    public static void dining(Person p) {
    p.dining();
    } public static void main(String args[]) {
    Father f = new Father();
    Son s = new Son();
    System.out.println(s.FAMIlYNAME);//继承:儿子继承了父亲的姓氏
    //多态:Test.dining参数为Person,f、s为具体某个Person,f、s吃饭习惯用手不一样
    dining(f);
    dining(s);
    }
    }结果:
    X
    use lefe hand
    use right hand
      

  3.   

    Good  good study !
    Day day up!
      

  4.   

    挺有意思的 呵呵
    要是有个mother就更逗了
    顺便说一句,JAVA不支持多继承,是这样吧?
    那son应该从father继承,实在不行,就给mother来个接口吧~
      

  5.   

    你可以看下我这几天的博客
    就在讲这个
    http://blog.csdn.net/terryzero/archive/2008/12/24/3595601.aspx
    希望能对你有所帮助
      

  6.   

    to 6楼:
    Father继承Person是对的,但Son继承Father是错的,说明你对抽象和继承机制理解还不透彻。
    在OO理论中,基类要么比派生类更抽象,要么比派生类具有更少的功能,所以才需要派生类去扩展(extends)它。父亲和儿子显然不符合这种关系(父亲不比儿子更抽象,也不比儿子的功能更少,他们在抽象级别上一致的)。9楼:
    要是有个mother就更逗了 
    顺便说一句,JAVA不支持多继承,是这样吧? 
    那son应该从father继承,实在不行,就给mother来个接口吧~说话很风趣,但是完全错了~~~
    JAVA不支持多继承就“来个接口”,殊不知,接口并不是为了解决“多继承”问题而存在的,而且凭什么父亲是类,母亲是接口?很荒诞的设计。或许有人说,初学不需要考虑那么深奥,但是,这些不正确的思想会给接下去的学习和应用带来很大麻烦。顺便说一下,如果有人看到有的教材中使用“父类”,“子类”这种称呼的,请把它扔了,正确的叫法是“基类(或超类)”和“派生类”。不是抠字眼,而因为是“父”、“子”这种叫法具有很强的误导性。
      

  7.   

    对了,再补充一下,要验证一个继承关系是否设计得正确,有一个很简单的方法,把基类和派生类的名字代入以下公式:一个 <派生类> 是一个 <基类>用相应的类名替换<>中的内容,再把句子连起来读一遍,如果是正确的,那么你的设计就是正确的,否则就是错误的。
      

  8.   

    这个应该不是java的特征,java是一种纯的面向对象的语言,你说的封装,继承,多台是面向对象的三大特征,个人感觉像这种说明性的文字不用去记,但是要理解