继承与抽象类

编程入门 行业动态 更新时间:2024-10-27 18:21:35

继承与<a href=https://www.elefans.com/category/jswz/34/1764781.html style=抽象类"/>

继承与抽象类

需求:创建类描述黄瓜、茄子、香蕉、榴莲、黄鳝、带鱼;它们各自拥有的属性和功能如下:(后面带小括号的是功能)

黄瓜:颜色;重量;可以吃(){黄瓜炒蛋};可以使用(){做面膜}

茄子:颜色;重量;可以吃(){油焖茄子};可以使用(){做中药}

香蕉:颜色;重zhi量;可以吃(){脆皮香蕉};可以使用(){做香蕉面膜}

榴莲:颜色;重量;可以吃(){榴莲酥};可以使用(){砸人}

黄鳝:重量;品种;价格;可以吃(){鳝鱼粥};

带鱼:重量;品种;价格;可以吃(){糖醋带鱼};

测试类:

public class Test {public static void main(String[] args) {Banana b = new Banana();b.setColor("黄色");b.setWeight(1);System.out.println(b.getColor() + ", " + b.getWeight());b.eat();b.use();System.out.println("==========================================================================");Eggplant e = new Eggplant();e.setColor("紫色");e.setWeight(2);System.out.println(e.getColor() + ", " + e.getWeight());e.eat();e.use();System.out.println("==========================================================================");Cucumber c = new Cucumber();c.setColor("绿色");c.setWeight(1);System.out.println(c.getColor() + ", " + c.getWeight());c.eat();c.use();System.out.println("==========================================================================");Durian d = new Durian();d.setColor("黄色");d.setWeight(5);System.out.println(d.getColor() + ", " + d.getWeight());d.eat();d.use();System.out.println("==========================================================================");RiceField_Eel r = new RiceField_Eel();r.setWeight(2);r.setPrice(30);r.setVarieties("青花黄鳝");System.out.println(r.getVarieties() + ", " + r.getWeight() + ", " + r.getPrice());r.eat();System.out.println("==========================================================================");Hairtail h = new Hairtail();h.setVarieties("沙带鱼");h.setPrice(60);h.setWeight(3);System.out.println(h.getVarieties() + ", " + h.getPrice() + " ," + h.getWeight());h.eat();}
}
食物类:
public abstract class Food {private double weight;public abstract void eat();public double getWeight() {return weight;}public void setWeight(double weight) {this.weight = weight;}
}
植物类:
public abstract class Botany extends Food{//需求:创建类描述黄瓜、茄子、香蕉、榴莲、黄鳝、带鱼;它们各自拥有的属性和功能如下:(后面带小括号的是功能)private String color;public String getColor() {return color;}public void setColor(String color) {this.color = color;}public abstract void use();
}

动物类:


public abstract class Animal extends Food{private String varieties;private double price;public String getVarieties() {return varieties;}public void setVarieties(String varieties) {this.varieties = varieties;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}}
香蕉类:
public class Banana extends Botany{//香蕉:颜色;重量;可以吃(){脆皮香蕉};可以使用(){做香蕉面膜}@Overridepublic void use() {System.out.println("做香蕉面膜");}@Overridepublic void eat() {System.out.println("脆皮香蕉");}
}
黄瓜类:
public class Cucumber extends Botany{//黄瓜:颜色;重量;可以吃(){黄瓜炒蛋};可以使用(){做面膜}@Overridepublic void use() {System.out.println("zuo面膜");}@Overridepublic void eat() {System.out.println("黄瓜变蛋");}
}
榴莲类:
public class Durian extends Botany{//榴莲:颜色;重量;可以吃(){榴莲酥};可以使用(){砸人}@Overridepublic void use() {System.out.println("砸人");}@Overridepublic void eat() {System.out.println("榴莲酥");}
}
茄子类:
public class Eggplant extends Botany{//茄子:颜色;重量;可以吃(){油焖茄子};可以使用(){做中药}@Overridepublic void use() {System.out.println("做中药");}@Overridepublic void eat() {System.out.println("油焖茄子");}
}
带鱼类:

public class Hairtail extends Animal{//带鱼:重量;品种;价格;可以吃(){糖醋带鱼};@Overridepublic void eat() {System.out.println("糖醋带鱼");}
}
黄鳝类:
public class RiceField_Eel extends Animal{//黄鳝:重量;品种;价格;可以吃(){鳝鱼粥};@Overridepublic void eat() {System.out.println("鳝鱼粥");}
}

继承:extends关键字

格式:public class 子类名 extends 父类名 

super关键字代表类了父类对象的引用

格式:super.();

abstract关键字用来修饰抽象类,抽象方法。

格式:public abstract class 类名{}

 public abstract 返回值类型 方法名();

注:抽象类不能创建对象

抽象类可以有构造方法

抽象类中可以没有抽象方法,但有抽象方法的类一定是抽象类

抽象类的子类必须重写抽象类中的所有抽象方法,除非这个子类也是抽象类

final 关键字

修饰类

public final class 类命(){}

修饰方法

public final 返回值类型 方法名(){}

修饰局部变量

final 数据类型 变量名 = 值;

(如果数据类型是引用数据类型则不能指向另一个对象)

修饰成员变量

private final 数据类型 变量名;

被 final 修饰的类不能被其他类继承

被 final 修饰的方法不能被子类重写

被 final 修饰的变量被称为常量,不能重新赋值,如果变量是引用类型,则不能指向另一个对象。

更多推荐

继承与抽象类

本文发布于:2024-02-25 20:15:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1700168.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:抽象类

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!