发信息做推广,我选黔优网

发布产品信息
微信公众号 微信公众号

Java中继承与聚合的区别是什么?

我要举报 黔优网官方账号 时间:2023-07-27 13:33 浙江浏览量:175|  阅读时长:12分钟
导读:在Java中,继承(inheritance)和聚合(aggregation)是两种不同的对象关系。它们在代码实现和语义上有所不同。继承是一种对象之间的关系,其中一个类(子类)继承另一个类(父类)的属性和方法。子类可以重用父类的代码,并

在Java中,继承(inheritance)和聚合(aggregation)是两种不同的对象关系。它们在代码实现和语义上有所不同。

继承是一种对象之间的关系,其中一个类(子类)继承另一个类(父类)的属性和方法。子类可以重用父类的代码,并可以添加新的属性和方法。继承是一种”is-a”(是一个)关系,其中子类是父类的一种特殊类型。在Java中,使用关键字extends来实现继承。

聚合是一种对象关系,其中一个类(整体)包含另一个类(部分)作为其成员变量。部分对象可以独立存在,并且可以与多个整体对象相关联。聚合是一种”has-a”(有一个)关系,其中整体对象包含部分对象。在Java中,可以通过将部分对象声明为整体对象的成员变量来实现聚合关系。

下面是一个简单的代码示例,演示了继承和聚合的区别:

// 父类class Vehicle {
    protected String brand;

    public Vehicle(String brand) {
        this.brand = brand;
    }

    public void start() {
        System.out.println("Starting the vehicle");
    }}// 子类继承父类class Car extends Vehicle {
    private int numberOfSeats;

    public Car(String brand, int numberOfSeats) {
        super(brand);
        this.numberOfSeats = numberOfSeats;
    }

    public void drive() {
        System.out.println("Driving the car");
    }}// 部分类class Engine {
    public void start() {
        System.out.println("Starting the engine");
    }}// 整体类包含部分对象class Car2 {
    private String brand;
    private Engine engine;

    public Car2(String brand, Engine engine) {
        this.brand = brand;
        this.engine = engine;
    }

    public void start() {
        engine.start();
        System.out.println("Starting the car");
    }}public class Main {
    public static void main(String[] args) {
        // 继承示例
        Car car = new Car("Toyota", 4);
        car.start(); // 调用继承自父类的方法
        car.drive(); // 调用子类的方法

        System.out.println();

        // 聚合示例
        Engine engine = new Engine();
        Car2 car2 = new Car2("Toyota", engine);
        car2.start(); // 调用整体对象的方法,并使用部分对象的方法
    }}

在上述示例中,Car类通过继承Vehicle类获得了start方法,并添加了自己的drive方法。而Car2类使用聚合关系,将Engine对象作为成员变量,通过调用整体对象的start方法,间接调用了部分对象的start方法。

 
  • 下一篇: HTML5中怎样清除canvas?
  • 上一篇: 前端人员为什么要学服务器开发?
 
没用 0举报 收藏 0评论 0
免责声明:
本页信息由“黔优网官方账号”发布,黔优网作为免费B2B信息发布平台,已对用户身份进行实名验证并对内容进行形式审核。信息的真实性、合法性由发布者独立承担全部责任,平台不承担内容准确性保证责任。本文涉及见解与观点不代表黔优网官方立场,交易决策前请务必自行核实,风险自负。原文链接:https://www.qianu.com/n/250643.html。如发现侵权或虚假内容,请【投诉举报】联系我们处理。
 
 

 
推荐图文资讯