Java中的继承、聚合与组合

一、继承关系

     1.文字描述

        一个类或者接口继承了另一个类或者接口,增加了在原有的方法和属性上增加了新的方法和属性。

  • 继承描述的是一种能力:可以使用现有类的所有功能,并在无需重新编写原有类的情况下进行功能上的扩展。
  • 要使用继承,必须满足 is-a 原则(代码复用),定义的语法为:子类 extends 父类。
  • 子类:又称为派生类,子类一定具有父类的全部属性与行为,并且拥有的属性更多,具有的行为更加丰富,表示的范围更小。
  • 父类:又称为超类。

Java中的继承、聚合与组合_第1张图片

     2.代码描述

class A { }

class B extends A { }  

class C extends B { }

 class Person {
    private String name;

    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
}


class Student extends Person {
    public void fun() {
        System.out.println(getName());
    }
}


public class JiCheng4 {
    public static void main(String[] args) {
        Student stu = new Student();
        stu.setName("张三");
        System.out.println(stu.getName());
        stu.fun();
    }
}

二、聚合关系

    1.文字描述

      聚合关系 has a,关联关系较弱,后期使用不会因为对象的删除而删除。

  • 聚合代表了has-a的关系;
  • 并且是一种单向关系。单向的。比如说,公寓里面有学生,但是学生里面不能有公寓,这是一种天生的单向关系;
  • 在聚合的关系中,两种实例是可以单独存在的,不会相互影响,一个实例的存在与否不会影响与之聚合的实例的存在与否。

 

Java中的继承、聚合与组合_第2张图片

   2.代码描述

class A{}
 
class B{
    A a;//成员变量引入了A类
  B(A a){
      this.a = a;
  }
}

三、组合关系

    1.文字描述 

      组合关系contains a,关联关系较强,整体和部分是不可分割的,他们又共同的生命周期。

  • 代表这一种part-of的关系,就是一个类是另一个类的一部分;
  • 在组合的关系中,实例是彼此依赖的。;
  • 当两个实例是组合关系,它们就是高度耦合的,一个对象必须依赖另一个对象的存在而存在。

 

Java中的继承、聚合与组合_第3张图片

   2.代码描述

   class A{}
 
class B{
    A a;//成员变量引入了A类
    B(){
        this.a = new A();
    }
}

你可能感兴趣的:(Java中的继承、聚合与组合)