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

java中,子类是否允许有一个方法和父类方法名字相同,而参数类型不同 为什么

发布网友 发布时间:2022-05-23 20:29

我来回答

5个回答

热心网友 时间:2023-11-23 01:28

Java的重写和重载是两种在Java中经常提到的两组概念,它们在各个方面都有着很大的不同,下面详细介绍你要了解的区别。

Java的多态机制

即重写,重写主要用于子类和父类之间,在父类中定义了一个方法,同时在子类中对这个方法进行重写,实现子类行为的特殊化,例如:
class Animal{

void eat(){ System.out.print("animal eat");}

}

class Tiger extends Animal{

void eat(){System.out.print("Tiget eat");}

}

子类中的eat方法即对父类的eat方法实现了重写,重写最常见的例子就是下面的声明:

Animal some=new Tiger();

关于重写,遵循以下的规则:

(1)重写方法必须和被重写方法具有相同的参数列表,返回类型必须和被重写方法的返回类型相同或者是返回类型的子类型。

(2)重写方法的访问控制修饰符不能比被重写方法更严格(比如一个在父类中声明为public的方法重写成一个protected的方法)。

(3)只有实例方法才能被重写,超类中的final方法不能被重写。

(4)重写方法不能抛出新的检查异常,或者是抛出比被重写方法声明的检查异常更广泛的检查异常。

(5)注意一种特殊情况:如果超类的方法版本中声明了检查异常,但重写的子类方法中没有声明,这时如果使用多态的方式进行调用,那么编译器认为你调用的是声明了异常的方法。

(6)尽管多态是在编译时确定对象的类型,但在编译时,还是根据父类的方法声明进行程序检查。因此,如果子类中定义的方法,在父类中没有定义,则会出项编译错误。

Java的重载机制:
重载的实质:在一个类中使用签名相同的多个方法。

按照范围,可以将重载分为在一个类中重载,和在子类和父类中重载。现分别解释如下:

1.在一个类中定义多个具有相同签名的方法,这些方法必须具有不同的参数列表,比如一个类的构造函数。

2.在父类和子类中,子类由于继承而拥有了父类的某些方法,此时在子类再定义具有相同签名的方法(必须具有不同的参数列表),这个地方很容易和重写相混淆,因此千万注意。

重载的规则主要记住亮点:
一是方法的参数列表必须改变,包括参数的类型,参数的个数多少,参数顺序。

二是重载对返回类型,访问修饰符,异常声明没有任何*,可以作任意的修改。实质上,重载只是创建了一个方法而已,特殊的地方在于方法的名字。

注意下面的一种情况:(重写和重载的混合)

class UseAnimal{

void doStuff(Animal sa){}

void doStuff(Tiger sa){}

public static void main(String[] args){

UseAnimal ua=new UseAnimal();

Animal an=new Tiger();

ua.Stuff(an);

}

}

此时,调用的方法doStuff的Animal版本,因为调用重载方法是在编译时决定的,an的声明类型是Animal。所以调用Animal版本。

始终注意一点:重载的判断始终是在编译时决定

热心网友 时间:2023-11-23 01:28

简单来说!是重载和重写!重载时方法名字一样但是参数的类型不一样!重写是方法名一样,参数也一样!只有这两种!你从父类继承或者实现接口都可能会用到重写这个概念!因为有时父类的方法不一定适合子类去用!这个时候就要用到重写方法!改变方法的内容一边更好的去使子类去运行!而重载则是当你想要调用一个方法时发现需要用到其他的变量但是这个方法却没有给你提供,这是你就要用到重载去增加你需要的变量!以便更方便的去调用这个方法!

热心网友 时间:2023-11-23 01:28

这个是重写,子类重写了父类的方法,,父类中的方法并不一是子类所需要的,,所以就重写了一下。。

热心网友 时间:2023-11-23 01:29

函数名字相同参数不同叫做函数重载。
子类继承了父类的某个方法,然后在子类里面实现该函数的一个重载函数,这个是完全没问题的,就算两个函数都在同一个类里面也没问题。
例如:
fun(int a)
fun(String a)
这两个函数名字相同,参数的类型不同,就叫做函数重载了.
就算其中某个函数是子类从父类继承过来的,也属于函数重载.
推荐你先看下函数重载的概念.

参考资料:http://ke.baidu.com/view/534068.htm?fr=ala0_1

热心网友 时间:2023-11-23 01:30

名字相同,而参数类型相同叫重写,也就是子类的对象在使用该方法的时候执行的就是子类中重写的这个方法
名字相同,而参数类型不同叫重载,它们是不同的方法
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 养宠物的人遵守规则,是不是就能和别人平安相处呢? java的子类和父类中的super、this的区别是什么? 在Java中从一个子类从超类继承时候,覆盖超类的一个方法,能否把方法改变的很厉害,就和原先一点关系没有 java中子类的子类可以继承超类 java子类与超类同包时可以继承的有哪几种权限的成员?不同包时可以继承的有哪几种权限的成员? 子类与超类演绎与归纳应该遵循的约束是动态约束吗 JAVA中超类和子类是什么意思? 降价函英文怎么表达 我把哔哩哔哩客户端清了数据移到了sd卡,然后发现某些缓存了的视频不见了,没在哔哩哔哩里显示,但还在 情景:1.清晨闹钟想起,人物关掉闹钟的场景,再给手按闹钟的特写. 2.走到厨房,看 【闹钟控制场景】按钮为什么无法控制闹钟? 手机MP3下载 用英语翻译两个句子: 在动物园里,人们正在看大象,狮子,长颈鹿和考拉。在公园里 手机下载MP3 手机mp3音乐下载 手机MP3下载? 盘点布里斯班的旅游景点,你都去过哪些? mp3能用手机下载吗 KOALA PARK SANCTUARY 考拉公园保护区怎么样 落近义词是什么 陨落和殒落哪个正确? java 小问题 子类的子类是父类的子类还是间接子类 奔图2535NW怎么样 美缔可化妆品价格贵吗? 喜露美化妆品瓶都是啥颜色 怎么可以查出喜露美化妆品的真假 风娃娃的朋友有哪些 杜大浩喜欢赵梦楠吗 女朋友都喜欢怎样的惊喜 法网追凶田局是不是坏人 魔兽世界精准属性对于防御战士来说 用处大不? 盗贼的精准属性,和命中与否由关系吗? 赵梦楠这个名字好吗? 送什么礼物给女朋友最好啊! 魔兽 精准和命中的属性是怎么换算的 战士需要多少才能算是合格 周杰伦新专辑《惊叹号》曲目。 风娃娃做了哪些好事和坏事? wow的精准属性有啥用谁能解释? 同学生日快乐祝福语(藏头诗,祝赵梦楠生日快乐)急用谢谢 新红楼梦第29集说的是什么 WOW 精准和命中 有什么区别?