Java中的继承、聚合与组合

一、继承关系

     1.文字描述

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

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

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

 

   2.代码描述

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

三、组合关系

    1.文字描述 

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

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

 

   2.代码描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值