`
yinchunjian
  • 浏览: 284262 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

java中组合和继承关系

    博客分类:
  • java
阅读更多

1、

组合是在一个类中引用其他类对象

Java中组合是"is-a"(是一个)的关系是用继承来表达的,而“has-a”(有一个)的关系则是用组合来表达的。

2.、继承的向上转型

   创建一个基类

package com.jic;

public class Base {
	public void print(){
		System.out.print("base");
	}
	public void baseMethod(){
		System.out.println("baseMethod");
	}
}

 创建一个子类

package com.jic;

public class SubBase extends Base {
	public void print(){
		System.out.print("subBase");
	}
	public void subMethod(){
		System.out.print("subMethod");
	}
	public static void main(String args[]){
		Base base = new SubBase();
		base.print();//输出“subBase”
		base.baseMethod();//调用基类方法 
//子类新增的方法subMethod()不能调用
	}
}	

 

3、再论组合和继承

到底是该用组合还是用继承,一个最清晰的判断方法就是问一问自己是否需要从新类向上转型。如果必须向上转型,则继承是必要的;但如果不需要,则应该好好考虑自己是否需要继承。

分享到:
评论

相关推荐

    java中继承和组合中图形的简单类的定义

    ### Java中的继承与组合在图形类定义中的应用 在Java编程语言中,继承与组合是面向对象编程(OOP)的两大核心概念。通过继承,一个类可以从另一个类那里继承属性和方法,从而实现代码的复用;而通过组合,则是在类...

    java中慎用继承 以及java中的stack的败笔

    在组合关系中,对象内部持有其他对象的引用,形成部分-整体的关系,如`Computer2`持有`CPU`的实例。这两种方式都比继承更有利于维持类的独立性和降低耦合度。 然而,Java中的`java.util.Stack`类是一个值得讨论的...

    如何在Java中消除实现继承和面向接口编程

    本文将深入探讨如何在Java中合理地消除实现继承和面向接口编程中的不当用法,以提高代码的可读性、可维护性和灵活性。 ### 1. 避免过度使用继承 继承在OOP中被用于表示“is-a”关系,即一个类是另一个类的一种特殊...

    浅析Java中的继承与组合

    在Java编程语言中,继承和组合是两种主要的面向对象设计原则,它们分别代表了类之间的不同关系。本文将深入探讨这两个概念以及它们在实际编程中的应用和选择。 首先,让我们了解一下继承。继承是Java中一种强大的...

    Java中类的组合概念

    类的组合与继承不同,它是通过在类定义中嵌入其他类的实例来实现的,这种方式有助于提高代码的可重用性和模块化。 首先,我们来理解Java中类的概念。类是面向对象编程的基本单位,它定义了一组属性(成员变量)和...

    java组合的算法

    组合模式的核心思想是"has-a"关系,即一个对象包含其他对象,这与继承的"is-a"关系不同。在Java中,我们通常通过接口或抽象类来定义共同的行为,然后由具体类实现这些行为,从而实现部分与整体的解耦。 首先,让...

    java的继承总结.doc

    下面将对Java继承的基本概念、语法格式、继承关系、方法重写、自动转型等进行详细的总结和分析。 一、继承的基本概念 继承是特殊的is-a关系,即子类继承父类,说明子类是一种特殊的父类,并且具有父类所不具有的...

    UML中依赖泛化关联实现聚合组合的Java实现

    在Java中实现UML中描述的概念,首先定义基础的类结构,然后通过继承关系和关联关系建立类之间的联系。以下是一个简化的Java代码示例: ```java // 抽象类BankAccount abstract class BankAccount { abstract void ...

    UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别

    继承关系有助于代码的复用和模块化,减少了冗余,同时也提高了代码的可维护性。 2. **实现**: 实现是类与接口之间的关系,表示一个类承诺实现接口定义的所有方法。在Java中,实现用`implements`关键字表示。接口...

    关于Java中的继承和组合的一个错误使用的例子

    在Java编程中,继承和组合是两种常用的代码复用机制,它们各有特点并适用于不同的场景。这篇文章通过一个错误使用继承和组合的例子,探讨了这两者的区别以及如何避免不当使用带来的问题。 首先,让我们理解什么是...

    UML中继承实现依赖关联聚合组合的联系与区别_线条箭头.doc

    UML 中的继承关系是指一个类继承另外一个类的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系。在 Java 中此类关系通过关键字 extends 明确标识,在设计时一般没有争议性。 UML...

    Java语言程序设计:第四章 继承与多态.ppt

    在Java编程语言中,继承和多态是面向对象编程的核心概念,它们极大地提高了代码的复用性和灵活性。在第四章“继承与多态”中,我们深入探讨了这两个主题。 首先,继承允许一个类(子类)从另一个类(父类)继承特性...

    UML学习之依赖_关联_聚合_组合_继承

    泛化表示的是类与类之间的继承关系、接口与接口之间的继承关系,或者是类对接口的实现关系。在UML中,泛化关系通常用一个带有空心三角形箭头的实线表示,箭头指向基类(父类)。 **特点:** - **方向性**:泛化关系的...

    java类的继承详解说明

    Java 中的继承是单继承关系,每个子类只能有一个直接父类,但可以有多个间接父类。实现继承的语法非常简单,就是在子类类名后增加 extends 父类名。例如:`public class Apple extends Fruit {类内部省略}` 继承的...

    Java组合与继承之间的选择

    与继承不同,组合不是通过继承关系来共享代码,而是通过持有对象的引用来实现。这种方式允许新类(容器类)包含其他类的实例作为其成员变量,从而使用这些类的功能。组合的优点包括: 1. **松耦合**:组合中的类...

    UML类图关系泛化、继承、实现、依赖、关联、聚合、组合.doc

    本文将对UML类图关系中的泛化、继承、实现、依赖、关联、聚合、组合七种关系进行详细介绍。 泛化关系 泛化关系是指一个类继承另外一个类的功能,并可以增加它自己的新功能的能力。这种关系是类与类或者接口与接口...

    Java设计一个银行帐户类(继承与多态)

    这里虽然没有明确的继承关系,但可以通过组合(Composition)的方式复用`BankCount`类的功能。继承是多态的基础,多态性允许子类对象替换父类对象,且能够调用父类的公共方法,同时也可使用子类特有的方法。 实验中...

    类的组合和接口的实现

    在Java编程语言中,类的组合(Composition)和接口的实现(Interface Implementation)是两种重要的面向对象设计原则,它们在构建复杂系统时起着至关重要的作用。类的组合允许我们把小的、独立的类组合成更大的、更...

    java script 继承的实现

    6. **寄生组合式继承**:结合了寄生式继承和组合继承,被认为是 JavaScript 中最理想的继承方式。它通过寄生方式复制父类构造函数的属性,然后使用组合继承来设置子类的原型。 在 "zinherit.js" 文件中,可能实现了...

    UML类关系之JAVA代码实现

    2. **泛化(Generalization)**:泛化是类的继承关系,一个类(子类)继承另一个类(超类)。在Java中,这通过`extends`关键字实现。例如: ```java public class A extends B {} ``` 泛化关系在UML中用一个带空心箭头...

Global site tag (gtag.js) - Google Analytics