类的继承-继承问题中的Has_A和Is_A的关系到底是怎么样的?

问题描述

继承问题中的Has_A和Is_A的关系到底是怎么样的?

新手刚学java,还不是很懂。想问图中a[1] 为什么不能用bark(),语录3怎么错了?语句6运行为什么会出错?

解决方案

IS--A基于类继承或接口实现,IS-A是表达这句话的一种方式:“这个东西是那个东西的一种”。例如:野马是一种马。(是一个)
HAS-A关系是基于用法(即引用)而不是继承。换句话说,如果类A中的代码具有对类B实例的引用,则“类A HAS-A类B”。例如:马有缰绳。(有一个)

“is-a”代表的是类之间的继承关系,比如PC机是计算机,工作站也是计算机。PC机和工作站是两种不同类型的计算机,但都继承了计算机的共同特性。因此在用Java语言实现时,应该将PC机和工作站定义成两种类,均继承计算机类。
“has -a”代表的是对象和它的成员的从属关系。同一种类的对象,通过它们的属性的不同值来区别。比如一台PC机的操作系统是Windows,另一台PC机的操作系统是Linux。操作系统是PC机的一个成员变量,根据这一成员变量的不同值,可以区分不同的PC机对象。

解决方案二:

Has_A是指组合,由什么组成,不是继承。IS-A是继承,子类归属于哪一类(往往指父类)

时间: 2024-11-02 07:00:13

类的继承-继承问题中的Has_A和Is_A的关系到底是怎么样的?的相关文章

cocos2d-x js绑定的时候,C++中的类是多继承的时候该怎么办?

问题描述 cocos2d-x js绑定的时候,C++中的类是多继承的时候该怎么办? cocos2d-x js绑定的时候,C++中的类是多继承的时候该怎么办? 我这里的C++类继承了两个类,每一个类都有实体方法. 当parent proto指定其中一个类的时候,就调用不到另外一个父类的方法了. 求大牛解救 解决方案 触及 multiple inheritance (MI)(多继承)的时候,C++ 社区就会鲜明地分裂为两个基本的阵营.一个阵营认为如果 single inheritance (SI)(

新手,子包中的类怎么继承父包中的类?

问题描述 子类的父类可否是父包中的类.. 解决方案 解决方案二:类是随意继承的吧不区分包的吧解决方案三:头一次听说子包和父包的概念解决方案四:java里面没有包继承包这个概念在struts2的xml配置文件有包继承包的概念解决方案五:java里没有子包和父包这种概念,比如说com.aa和com.aa.bb这两个包就像郭芙和郭芙蓉一样,之间是没有任何关系,你不能说叫郭芙蓉的就是郭芙的女儿.包只是一个单纯的限定名.解决方案六:可以继承,继承的时候,在类的上方导入父类所在的那个包就可以了解决方案七:你

java继承 在子类中声明同名变量的问题???

问题描述 java继承 在子类中声明同名变量的问题??? 如下代码: class Person { String name; int age; public void introduce(){ System.out.println("姓名是" + name + ",年龄是" + age); } } public class Students extends Person{ // String name; public static void main(String[

dao-jpa DAO层类如何实现继承方法或实现接口?

问题描述 jpa DAO层类如何实现继承方法或实现接口? 如果我的接口是这样定义public interface UserModelDao extends PagingAndSortingRepository, JpaSpecificationExecutor{} ,那么如果我想添加实现类来拓展方法等的话,会出现有很多继承接口中未实现的方法,如何处理这种情况?或者有什么办法来处理dao层让我能够添加新的方法或使用jpa本身的方法,使得开发灵活简单? 解决方案 AAA hibernate实现增删改

class-一个类可以只能继承一个抽象类,为什么接口可以多继承接口

问题描述 一个类可以只能继承一个抽象类,为什么接口可以多继承接口 一个类可以只能继承一个抽象类,为什么接口可以多继承接口.谢谢大神帮我回答 解决方案 接口抽象类继承接口与抽象类的继承黑马程序员--继承.抽象类.接口 解决方案二: 这是java中继承父类和实现接口的差别,是参照与C的继承关系规定的. 解决方案三: 类也可以继承多个类啊,只是不说抽象类而已! 解决方案四: 注意:类对接口的implements称作实现 不能叫做继承 . 当然 接口可以多继承接口 因为接口只定义行为 并不包含类别的含义

安卓-在继承intentservice的中如何调用finish()方法

问题描述 在继承intentservice的中如何调用finish()方法 在继承intentservice的中如何调用android.app.Activity的finish()方法

javascript继承—继承的实现原理(1)

原文:javascript继承-继承的实现原理(1) 打算针对js的继承写一系列文章,详细的分析js里继承原理,实现方式,各种继承方式的优缺点,以及最优继承方案,还有多继承的问题等-. 面向对象的编程的核心是封装.继承和多态,js可以看作是一种面向对象的语言,而面向对象的扩展性最核心的部分是多态,多态的必要条件有三个,首先就是继承,其次父类的引用指向子类,最后是方法重写.对于js来说,由于其创建对象的方式多种多样,因此,需要对父类的多种属性和方法实现很好的继承,就必须找到一个比较完善的方法.本篇

如何在普通类实例的线程过程中,同步调用执行在类实例自身所在的原来的那个线程中的方法

问题描述 如何在普通类实例的线程过程中,同步调用执行在类实例自身所在的原来的那个线程中的方法如后代码,是一个常见的实例,讲的是通过Control.Invoke在线程函数中,同步调用窗体主线程中的Form1实例的普通方法txt.但问题是,很多时候我们自己自定义的类,并不是从Control类继承的,从而也没有这个功能的Invoke方法供调用,这种类要怎么设计呢?虽然说用的示例代码是vb.net的,但严格来说,这个和语言无关,是一个.net开发的基本问题.ImportsSystemImportsSys

文库类网站的文档中的外链有用吗

我们都知道百度自己的产品权重都很高,在百度搜索某些关键词的时候,百度产品赫赫在列,有的傲居榜首.这些包括百度百科.知道.新闻.文库等等.例如目前"单反相机"这个词通过百度搜索后在首页的结果中有5个是就是百度自己的产品,10个自然排名中,五个在列.这次小编分享的主角之一也是百度其中的一款产品--百度文库. 我们知道百度对JS.flash和frame框架结构十分感冒,那么百度对自己的文库当中的内容能识别吗?对其他网站的文库类产品又怎样呢?我们以<详述查看网页是否使用ALT标签和正确写