老师子类重写父类只要名一样。返回值和参数可以随便自己来的对吧?这样写可以吗返回String类型

老师子类重写父类只要名一样。返回值和参数可以随便自己来的对吧?这样写可以吗返回String类型

/**

 * 李明类

 */


package Demo;


public class MRli {

private String name;

private int age;

private String sax;


public MRli() {


}


public MRli(String name, int age, String sax) {

this.setName(name);

this.setAge(age);

this.setSax(sax);


}


public String getName() {

return name;

}


public void setName(String name) {

this.name = name;

}


public int getAge() {

return age;

}


public void setAge(int age) {

this.age = age;

}


public String getSax() {

return sax;

}


public void setSax(String sax) {

this.sax = sax;

}

/**

* 重写 tuString

*/

public String toString() {

String V = "姓名:" + this.getName() + "\n年龄:" + this.getAge() + "\n性别:" + this.getSax();

return V;

}


}

/**

 * 测试类

 */


package Tset;

import Demo.*;


public class TsetLI {

public static void main(String[] args) {

MRli sa = new MRli("李明",18,"男");

System.out.println(sa);

}

}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

6回答
wacky1 2020-04-17 22:21:00

http://img1.sycdn.imooc.com//climg/5e99ba84099557d118520938.jpg

http://img1.sycdn.imooc.com//climg/5e99ba890960c4c818520938.jpg我在父类加上关键字final看看效果。

http://img1.sycdn.imooc.com//climg/5e99ba9f09e2c26218520938.jpg

看这里,修改了参数列表的方法,我在父类方法中加了关键字final后依然不报错,就说说他不是重写方法,所以,修改参数列表,从本质来说,这个方法就不是方法重写了,是子类特有的方法

http://img1.sycdn.imooc.com//climg/5e99baa409fab5a018520938.jpg


wacky1 2020-04-17 21:59:41
  • wacky1 #1
    第一张图是我改之前的代码,返回值String忘了改回void而且没有return语句返回一个String类型的参数或者字符串所以报错了,不过没关系,你当成是void来看就OK了
    2020-04-17 22:01:37
  • wacky1 #2
    裂开我好像上存错图了
    2020-04-17 22:02:30
好帮手慕小尤 2020-04-16 15:16:32

同学你好,同学对重写理解是正确、但在子类中定义一个与父类方法具有不同的参数个数、参数类型或参数的顺序(返回值可以不同)的方法是重载方法(子类继承父类时,会将父类中的方法加载到子类中,则父类方法存在与子类方法中,所以是方法重载)。

http://img1.sycdn.imooc.com//climg/5e98056f096e824808970381.jpg


如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

wacky1 2020-04-15 23:58:46

不是的,参数可以随便改。

方法的重写:指的是子类中出现和父类中一模一样的方法(包括返回值类型,方法名,参数列表)

方法的重载: 指的是在同一个类中,出现多个同名的方法,参数列表不同,与返回值类型,修饰符无关

为什么要重写方法:

  1. 当父类中的方法无法满足子类需求的时候,需要方法重写

    2.当子类具有特有的功能的时候,就需要方法重写

子类可以根据需要,定义特定于自己的行为。既沿袭了父类的功能名称,又根据子类的需要重新实现父类方法,从而进行扩展增强。

你看我这样说你明白不

  • wacky1 #1
    但是返回值不行。如果返回值改了,从本质来说那个方法是子类独有的了,不是重写父类的方法,所以程序也不会报错。但是这样子不叫方法重载,这是我的纯粹个人见解。
    2020-04-16 00:00:16
  • wacky1 #2
    说错了参数也不能改
    2020-04-16 00:01:19
  • wacky1 #3
    方法的重写:指的是子类中出现和父类中一模一样的方法(包括返回值类型,方法名,参数列表),所有都要一样的,那个好帮手小尤说的你再看看,他说的你可以理解下
    2020-04-16 00:03:26
好帮手慕小尤 2020-04-15 10:28:02

同学你好,1. 不是的,重写需要方法名、参数个数、顺序、类型与父类、返回值相同。如下图所示:

http://img1.sycdn.imooc.com//climg/5e96703f09dfe6c008740580.jpg

2. 父类中的toString()方法返回类型是String类型,所以在同学代码中是重写了toString()方法。

3. 同学可通过@Override注解查看是否重写,如果不是重写,会出现编译性错误。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

苍星乱舞 2020-04-14 20:55:37

不对,你说的不对。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师