for example:
有两个类:一个是木头类(接口),一个是桌子类
我想定义另一个类class A extends 桌子 implements 木头{                                                    }
类A首先肯定is a 桌子 has a 木头的属性或方法
举例不一定正确,抛砖引玉!

解决方案 »

  1.   

    is a 是继承的关系,has a 是包含关系.
      

  2.   

    "has a"是指前面的一个对象包含又后面的哪个对象所有的属性,即是它的超类一样(尽管又可能会是接口等其他对象)。按照这个规则,不难发现答案就只有D,E.
      

  3.   

    看看thinking in java 那里写的最深刻
      

  4.   

    "is a" ues extend
    "has a " use interface
      

  5.   

    谢谢大家,可是此题的C,E选项怎么区分? C选项也是调用接口,怎么不是"has a"?
      

  6.   

    is a 是继承。比如class Mammal extends Animal, 我们可以说Mammal是Animal(mammal is animal)
    has a 是composition(中文不知怎么说)。简单来说就是一个类包含另一个类的实例。比如有以下几个类:
    class CPU{}
    class Memory{}
    class Harddisk{}
    class Computer{
        CPU cpu;
        Memory memory;
        Harddisk hd;
    }
    这种关系是has a
      

  7.   

    composition 组合或复合(书里讲的,不知道准确玛)
      

  8.   

    has  a  是组合的意思,就是在一个类里面声明其他类类型的变量is  a  是继承的关系good  luck
      

  9.   

    is a 是继承关系
    has a 是组合关系extends,implements都是is a关系
    如果你在一个类中有指向其他类实例的引用,则这两个类是组合关系,实际中组合关系用得比继承关系频繁