Java基础02:重载与重写

文章详细解释了Java中的方法重载和重写概念。重载发生在同一类中,要求方法名相同但参数列表不同,与返回值无关。重写则发生在父子类之间,子类必须保持方法名和参数列表与父类一致,返回值和异常处理需遵守特定规则。文中还提供了相关笔试题以加深理解。
摘要由CSDN通过智能技术生成

1.解释

重载overload:发生在同一个类中,方法名相同,参数列表不一样,个数不同,顺序不同,与方法返回值和修饰符没有关系(也就是不可以不同?),发生在编译-->重载和方法返回值没有关系??

如果方法名和参数都是一样的,只依靠方法返回值的类型不同,或者方法返回值的不同,编译器无法区分该调用哪个方法的,所以不能只依靠方法返回值不同来实现方法的重载。

如果一个方法的参数不同了,也就是已经满足了重载的条件了,这个时候,方法返回值就可以不同了。

(仅是)方法的返回值不同不能实现重载,而已经满足重载条件的方法,其返回值可以不同。

重写override :发生在父子类中,子类重写父类的方法,方法名相同参数列表也相同,返回值小于等于父类,抛出的异常范围小于等于父类、访问修饰符范围大于等于父类、如果父类方法访问修饰符为private,子类不可以重写

2.相关笔试题

(1)给定如下代码段:

1)class Person {

2)public void printValue(int t, int j) {}

3)public void printValue(int i){}

4)}

5) public class Teacher extends Person{

6) public void printValue(){}

7) public void printvalue(int i) {}

8) public static void main(String arg[]){

9)    Person t = new Teacher();

10)   t.printValue(10);

11)}}

第十行的语句将调用哪行代码?

A. on line 2

B.on line 3

C.on line 6

D.on line7

(2)将下列代码(ABCD)放入程序中标注的【代码】处将导致编译错误?

class A {

public float getNum(){return 3.0f;}

public class B extends A {

【代码】
}
}

A.public void getNum (double b){}

B.public void getNum(){}

C.public double getNum (float d){return 4.0d;}

D.public float getNum(){return 4.0f;}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值