刚刚看java的类的继承,想要搞清楚几个问题。
1. 比如我玩的游戏,里面的角色有(法师,战士,道士)。我们统称为“英雄”。而他们都是人类。
是否应该说(法师,战士,道士)继承了“英雄类”,而“英雄”又继承了“人类”
换句话说,是不是可以说:"人类"的“英雄类”里面的(法师,战士,道士)类。
那么就有另一个情况就是:
如果加入兽族在里面,,职业不变。
那么就只能这么分(人类,兽类)继承了(法师,战士,道士)类继承了“英雄类”。
我说这些的就是想知道,是不是继承应该按照抽象的程度来决定谁是父类。
第2个问题
一个新的类型是否可以继承2个父类。
比如:
如图,是否可以像第一图那样分,骡子继承 马和驴
如果说是第二种的话,总感觉很别扭,马和驴在现实中并不是骡子的子类。。
如果说只能按第二种分,请给个理由,谢谢、
对于java对象的概念 要区分 “a是b”、 “a像b” 。is 、like 的区别。
继承关系就是“is”关系。即 “a是 b”。
还有一种关系就是 a像b,这种就不是继承关系。
(我也不清楚实际上骡子和马的关系)
如果 “骡子是一种马” 那么就可以认为 骡子继承至马,骡子和马是继承关系。
但 如果骡子仅仅只是“像”马而并非是马类, 那么我们只能说 骡子具有马的一些特征,那这里就是一种实现关系。interface接口。注 这里不是说骡子 implements 马 而是说骡子和马都共同implements了另一种特征的A“特征对象”。换句话说就是 马有某些特征,而骡子也有这些特征,所以感觉骡子像马,而并非马。
可以按照第一种分,但是对于JAVA不支持类的多继承,如果实现多继承要求父类是接口,子类继承接口。但是骡子不属于驴,也不属于马,从这种意义上讲,应该是驴、马、骡子都从畜类继承
不知我这么说你是否明白
毛驴同样属于马类,驴科,也就是说毛驴的父类同样是马
应该是
马类
毛驴 马 骡子
毛驴、马、还有骡子,属并列关系
1、从所有的同类事物中抽取出共同的、本质性的特征。把这些特征集合起来形成一个父类。
在第一个问题,如果加入种族的话,就应该,把所有职业和种族都考虑进来去抽取他们的共性,并形成一个父类。
2、骡子不能继承 马和驴,就语言本身,java只能继承一个类(接口就另说了,这里不涉及)
马和驴在现实中并不是骡子的子类,就说明不应该继承骡子继承来。因为这个骡子就不是从马和驴的共性抽取出来的。
写类的的时候,先考虑的多面对的事物,先把具有同类的东西归纳在一起。然后在他们中找共性,提取共性形成父类。然后他们各自继承父类,并加入自己特有的特性。
先把方向整对......
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息