大家好,今天来为大家分享java重载和重写的区别的一些知识点,和java重写的返回值类型可以不同吗的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
Java中什么叫方法的重载
方法重载,这个概念是OOP中最长见的一个概念。是针对一个类内的方法而言的。
重载主要是针对的是类内同名的方法。只要方法名相同,而其它的不同——参数个数、类型、返回值等,只要有不同,就可视为重载。
另一个相似的概念是重写或覆写,针对的是类继承而言,主要是同方法名的,继承父类方法逻辑或完全重写对应方法逻辑。这里要注意的是,方法名、参数个数和类型以及返回值都要一致。
final修饰的方法能被重载吗
在java语言中,final修饰的方法不能被重载,final修饰的变量不能被更改,被final修饰的类不能被继承
java中重载和重写的区别详解
1、首先是重载,重载就是在同一个类当中有多个名称相同方法,但各个相同方法的参数列表不同(无关返回值类型)。如下,在test3中三个方法名相同的add方法,第一个是两个int类型的书相加,第二个是三个int相加,第三个是两个float相加,他们的参数个数不同或类型不同就构成了重载。
2、重写则发生在不同的类当中,并且两者要有继承关系,重写是方法名字和参数的列表是要完全一致的,重写的意义在于父类的方法已经不能满足时,子类重写为自己需要的。如下,在父类Test3中num方法是想做两数的加法运算,而在子类Test4中我想做两数的减法运算,则继承的num方法不能满足,则重写为test4中的num方法进行减法运算。
为何不能通过返回值来区分重载方法
在java中,重载是其一个非常重要的特性。使用重载,我们就好比是用相同的词表达多种不同的含义。
方法重载的规则很简单,就是每个重载的方法都必须有一个独一无二的参数类型列表,什么是独一无二的参数类型,即参数个数不同、参数类型不同、参数顺序不同。那么对于以返回值来区分重载方法是否可行呢?
比如下面两个方法,虽然他们有同样的名字和形式,但却很容易区分它们:
Java代码voidf(){}intf(){reurn1;}只要编译器可以根据语境明确判断出语义,比如在intx=f()中,那么的确可以据此却分重载方法。
不过,有时你并不关心方法的返回值,你想要的是方法调用的其他效果,这时你可能会调用方法而忽略其返回值。
所以,如果像下面这样调用方法:f();此时Java如何才能判断该调用哪一个f()呢?
因此,根据方法的返回值来区分重载方法是行不通的。
简述重载与覆盖的区别java
重载:在一个类当中才可以重载,方法名相同,参数个数不同或参数个数相同而参数类型不同。覆盖:又称重写,在派生类(子类)中重写基类(父类)的方法,名称、参数、类型都必须相同。
好了,文章到此结束,希望可以帮助到大家。