老师我想问下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修饰该方法,代表把方法锁定,不能被重写。
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
一giao我勒giao
提问者
2020-04-15
杨梅为什么要加final是防止有进口小杨梅出现吗
相似问题