老师我想问下super与this.set();的区别

来源:4-3 编程练习

一giao我勒giao

2020-04-15 19:58:10

* 父类

 */

package com.shuiguo;


public class dadshuiguo {


private String xingz;

private String koug;


public dadshuiguo() {


}


public dadshuiguo(String xingz, String koug) {

this.setXingz(xingz);

this.setKoug(koug);


}


public String getXingz() {

return xingz;

}


public void setXingz(String xingz) {

this.xingz = xingz;

}


public String getKoug() {

return koug;

}


public void setKoug(String koug) {

this.koug = koug;

}


public void eat() {

System.out.println("水果可供人们食用");

}


public boolean equals(dadshuiguo Da) {


if (Da == null) {

return false;

} else if (this.getKoug().equals(Da.getKoug()) && (this.getXingz().equals(Da.getXingz())))  {

return true;

} else {

return false;

}

}

}

* 杨梅类

 */


package com.shuiguo;


public final class yangmei extends dadshuiguo {

private String yans;


public yangmei() {


}


// 杨梅颜色属性赋值

public yangmei(String yans, String xingz, String koug) {


super(xingz, koug);


this.setYans(yans);

}


public yangmei(String yans) {


this.setYans(yans);

}


public void setYans(String yans) {

this.yans = yans;


}


public String getyans() {

return this.yans;

}


public final String faca() {


String a = ("杨梅:" + this.getyans() + "、" + this.getXingz() + "果味" + this.getKoug());

return a;

}


public void eat() {


System.out.println("杨梅" + super.getKoug() + "非常好吃");

}


public String toString() {

String c = ("杨梅的信息:果实为" + super.getXingz() + "、" + this.getyans() + this.getKoug());

return c;

}


}

* 香蕉类

 */


package com.shuiguo;


public class xiangjiao extends dadshuiguo{

private  String pinz;

public xiangjiao() {

}

public xiangjiao(String pinz, String xingz,String koug) {

this.setPinz(pinz);

this.setXingz(xingz);

this.setKoug(koug);

}


public String getPinz() {

return pinz;

}

public void setPinz(String pinz) {

this.pinz = pinz;

}

public String banan() {

return this.getPinz() + "果形"+this.getXingz() + this.getKoug();

}

public String banan(String yans) {

return this.getPinz()+ "颜色为" + yans;

}

}

* 测试类

 */

package Tset;


import com.shuiguo.*;


public class Tset1 {

public static void main(String[] args) {

dadshuiguo one = new dadshuiguo("圆形", "酸甜适中");

dadshuiguo one1 = new dadshuiguo("圆形", "酸甜适中");


one.eat();

System.out.println(one.equals(one1));

System.out.println("_______________");

yangmei two = new yangmei("紫红色","圆形","酸甜适中");

System.out.println(two.faca());

two.eat();

System.out.println(two);

System.out.println("_______________");

xiangjiao three = new xiangjiao("仙人蕉","短而稍圆","果肉香甜,可供生食");

System.out.println(three.banan());

System.out.println(three.banan("黄色"));

}


}

老师,我杨梅类,我写着super(xingz,koug);和我写this.setXingz(xingz);this.setKoug(koug);输出结果是一样的没什么区别,具体到底是有没有区别啊老师。

写回答

2回答

好帮手慕小琪

2020-04-16

同学你好,

1. 继承父类时,子类使用this和super的区别:

当有相同的属性或者方法时,子类的this表示调用自己的属性或者方法,super是调用父类的属性或者方法。当子类调用的属性方法在子类中不存在时,那么this和super都是调用父类的属性或者方法。

2. 杨梅类加final的作用:

题目要求,杨梅类不允许有子类,所以要加final修饰,代表杨梅类不能被继承;并且题目要求face()方法不允许被重写,所以要用final修饰该方法,代表把方法锁定,不能被重写。

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

1

一giao我勒giao

提问者

2020-04-15

杨梅为什么要加final是防止有进口小杨梅出现吗

0

0 学习 · 11489 问题

查看课程