问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中假设B继承A,C继承B 下面A a=new C();与C a=new C()有区别吗?多态到底是什么意思。

发布网友 发布时间:2022-05-01 04:41

我来回答

5个回答

热心网友 时间:2023-10-05 07:39

当然有区别,如果C中某方法是新的,并非继承自某个A或B中的方法,那你对A a=new C();中的a无法调用此方法,编译就通不过,而对C a=new C();中的a就可以调用此方法。

如果此方法继承自A或B,那么即使在C中重写了此方法,这两个句子产生出来的a调用此方法产生的结果都是一样的,这就是多态性。

但上面这话不适合于静态成员和静态方法,比如你可以在A,B,C中都定义
public static String getS()
并返回不同值,这几个getS()之间不是重写的关系而是各管各的。如果是
A a=new C();
那么a.getS()返回的是A下的那个结果(所以一般不建议这么写,而是应该写A.getS()以减少误解的可能性)

C a=new C();那么a.getS()返回的是C下的那个结果。

热心网友 时间:2023-10-05 07:39

主要是类型上的区别,A a=new C();调用了类C的构造器,创建了A的对象a,
C c=new C();调用了类C的构造器,创建了c的对象c,因为继承关系C是A的间接子类,所以c对象可以获得a对象的所有public方法,a表现了c的行为,有自己的行为,不是相同的,要注意。
多态:表现为同一个类中方法的重载使相同的方法名有不同的表现。以及子类继承父类,子类重写了父类的方法,在子类中与父类同名的方法就不能表现出父类方法的行为,而是由自己的行为
你自己仔细的体会重写和重载。慢慢就会明白的

热心网友 时间:2023-10-05 07:40

【C a=new C()】
这个你好像写错了吧?java允许这样写吗?这个我也不确定
多态就是----不同的对象,接收到同一指令,做出不同的反应,这是我的理解
for example:如果听到上课的铃声,有的学生在翻开书本,有的学生从教室外进来,老师带着课本和教案来到教室铃声是相同的,但每个人的反应都不同,这个就是多态
楼下回答的比我专业多了,仔细看看他的回答吧!

热心网友 时间:2023-10-05 07:40

多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
多态有两种表现形式:重载和覆盖
首先说重载(overload),是发生在同一类中。与什么父类子类、继承毫无关系。
标识一个函数除了函数名外,还有函数的参数(个数和类型)。也就是说,一个类中可以有两个或更多的函数,叫同一个名字而他们的参数不同。
他们之间毫无关系,是不同的函数,只是可能他们的功能类似,所以才命名一样,增加可读性,仅此而已!

再说覆盖(override),是发生在子类中!也就是说必须有继承的情况下才有覆盖发生。

我们知道继承一个类,也就有了父类了全部方法,如果你感到哪个方法不爽,功能要变,那就把那个函数在子类中重新实现一遍。
这样再调用这个方法的时候,就是执行子类中的过程了。父类中的函数就被覆盖了。(当然,覆盖的时候函数名和参数要和父类中完全一样,不然你的方法对父类中的方法就不起任何作用,因为两者是两个函数,毫不关系)

A a=new C();
创建的是父类A的对象,调用的方法是A中的方法
C a=new C()
创建子类C的对象,调用的方法是C中的方法

热心网友 时间:2023-10-05 07:41

两种方式都实例化了C类的对象,但是引用不同,第一种只能调用A类里定义了方法,第二种A/B/C三个类里面定义的方法都可以调用。将第一种new出来的对象a进行强转为C类应用后即可调用A/B/C类的所有方法,因为他自己本来就是C类对象。多态是指,如果A类定义了方法fun()而后B类或C类重写了方法fun(),则new的C类对象只会调用最后重写的fun()方法,即B类或C类的fun()方法。示例:
public class 车(){
public void 发动(){靠某种动力发动};
public void 运行(){可以跑};
public void 装载(){可以装物品};
}
public class 汽车() extends 车{
public void 发动(){靠发动机发动};
public void 装载(){可以载人};
}

public class 公交车() extends 汽车{
public void 装载(){可以载很多人};
public void 报站(){到公交站可以报站让乘客下车};
}

车 a = new 公交车();//实例化了一个公交车,但是我们只知道它是车;
公交车 c = new 公交车();//实例化了一个公交车,而且我们知道它是公交车;
a.发动();//a是车,可以调用“车”类定义的“发动”方法,实际上它是公交车,公交车也是汽车,所以是靠发动机发动;
c.发动();//c是公交车,公交车是汽车,可以调用继承自“汽车”类的重写的“发动”方法,靠发动机发动;
a.运行();//a是车,可以调用“车”类定义的“运行”方法,可以跑;
c.运行();//c是公交车,公交车也是车可以调用继承自“车”类定义的“运行”方法,可以跑;
a.装载();//a是车,可以调用“车”类定义的“装载”方法,实际上它是公交车,所以它可以载很多人;
c.装载();//c是公交车,可以调用“公交车”类重写的“装载”方法,可以载很多人;
c.报站();//c是公交车,到公交站可以报站让乘客下车;
((公交车)a).报站();//a本来是公交车,但是我们只知道它是车,不一定会报站,现在把它强转为公交车,那我们就知道他是公交车了,可以报站,到公交站可以报站让乘客下车。

总体而言就是:对象能调用哪个方法是根据我们所知道的它是哪个类来看,而调用该方法实际执行的操作是根据它实际上是哪个类来看。子类继承父类就有了父类的方法,而重写父类的方法就改掉了实际执行的操作。这就是多态。

希望对你有帮助。
java中假设B继承A,C继承B 下面A a=new C();与C a=new C()有区别吗?多...

在 Java 中,假设 B 继承 A,C 继承 B,则 A a = new C(); 和 C a = new C(); 是有区别的。A a = new C(); 创建了一个 A 类型的引用变量 a,但是它指向了一个 C 类型的实例对象。因为 C 继承了 B,B 继承了 A,所以 C 是一个 A 类型的对象,所以可以将 C 类型的实例...

java中假设B继承A,C继承B 下面A a=new C();与C a=new C()有区别吗?多...

两种方式都实例化了C类的对象,但是引用不同,第一种只能调用A类里定义了方法,第二种A/B/C三个类里面定义的方法都可以调用。将第一种new出来的对象a进行强转为C类应用后即可调用A/B/C类的所有方法,因为他自己本来就是C类对象。多态是指,如果A类定义了方法fun()而后B类或C类重写了方法fun()...

为什么C语言比java难 假设类A是类B的父类 假设AB是两个随机事件 假设A比B多十八书 假设一个经济体只有两种商品A和B 假设检验中第二类错误的概率B表示 国外java与C java调用C静态库 国二C简单还是java简单
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
吸烟吸的牙齿发黄...有的救吗?? 我的电脑重做系统了,里面的office2007怎么能恢复使用?我没有安装包_百... 宿舍墙上的H3C是什么意思? 电子制造业精密清洗机分类 华硕笔记本黑屏怎么办呢?求救!!! 360浏览器怎么设置主页? 牛肉馆名字大全带财运的370个 关于09年5月婵真银杏泡沫洗面奶的真假 为什么瑾泉的洗面奶在网上的价格是市场价格的一半? tfs 洗面奶 满意追加30分! C#中,多态性的体现就是父类new子类对象吗?还有其他体现形式吗? java中多态是什么意思? 三星手机s-5830屏幕解锁忘记密码怎么办 三星s六手机忘记密码怎么办 请问三星s5360锁屏密码忘了,怎么解锁,刷机行吗 三星GT-S5150手机信息锁住了密码忘了怎么解锁? 三星GT-s6358手机解锁密码忘了怎么办 三星GT-S7562C手机忘记密码怎么解锁 三星手机sch-s579手机密码忘记了怎么解锁,谢谢 三星手机型号GT-S5368密码忘了怎么解锁 三星S5360手机屏幕密码忘了,怎么解锁? 三星S7572密码忘记了 怎么办 mysql下字段值的大小写被忽略怎么解决 近期最火爆的爽片,全程无尿点,都有哪些电影呢? 疾速追杀1中为什么电影一开始主人公就哭了? 极速系列怎么观看 电影《疾速追杀》在什么地方可以看吖??? 疾速追杀男主人公开的两部车子是什么 哪一部电影是因为自己的狗狗被杀,然后大开杀戒的 极速特工极速备战极速追杀观看顺序 java的多态怎么理解啊,多态有什么用途。 齐齐哈尔有没有13位的手机号码 齐齐哈尔手机号码价格问题 138462618是哪个省份的 手机号是齐齐哈尔的联通,来到大连怎么办流量包? 你有基于主成分分析的人脸二维码识别的算法吗 怎么分析 0452240778是齐齐哈尔哪个区的电话号码? NVIDIA® Quadro® NVS3100M 是独立显卡吗? 求Android端 二维码识别算法啊啊啊啊啊~~ 齐齐哈尔客运站的电话号码 求一个关于QR二维码识别与检测程序 nvidia nvs 3100m 这显卡是不是不适合做3d建模之类的东西? 求UG10.0安装包和视频 独立显卡NVIDIA NVS 3100M,显存512,内存2G。这个显卡能玩使命召唤吗?还有极品飞车的所有版本都可以玩吗 nvidia quadro nvs 3100m怎样 UG10.0的安装包有多大了??谁会安装帮下我了 Nvidia NVS 3100M指的是显卡还是显卡芯片? UG10.0.3.5升级包怎么升级 NVIDIA Quadro NVS 3100M显卡怎么样? ug10.0.35比nx0.0.24多了什么功能