Java基础-day10-代码题-继承&抽象类

时间:2022-05-04
本文章向大家介绍Java基础-day10-代码题-继承&抽象类,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Java基础-day10-代码题-继承&抽象类

1.门类继承题:

编写代码,实现如下功能:

(1)定义一个门类,

包含3个属性:宽度width 和 高度height ,颜色color

包含2个方法:开门和关门

开门方法:输出“门已经打开,请进!”

关门方法:输出“门已经关闭,禁止进入!”

(2)定义一个木头门WOOD,继承Door

重写父类开门方法:输出门的高度 宽度 颜色 +“门已经打开,请进!”

重写父类关门方法:输出门的高度 宽度 颜色 +“门已经关闭,禁止进入!”

(3)定义一个测试类,测试类定义一个main方法

分别创建 门对象 和 木头门对象, 为创建的木头门对象属性赋值, 调用开门和关门两个方法。

代码实现:

package StudentJavaSEday10;
class Door {
 // 定义属性
 private double width;
 private double hight;
 private String color;
 public double getWidth() {
 return width;
 }
 public void setWidth(double width) {
 this.width = width;
 }
 public double getHight() {
 return hight;
 }
 public void setHight(double hight) {
 this.hight = hight;
 }
 public String getColor() {
 return color;
 }
 public void setColor(String color) {
 this.color = color;
 }
 //开门方法
 public void openDoor(){
 System.out.println("门已经打开,请进!");
 }
 //关门方法
 public void closeDoor(){
 System.out.println("门已经关闭,禁止进入!");
 }
}
package StudentJavaSEday10;
class WoodDoor extends Door {
 // 重写开门方法
 public void openDoor() {
 System.out.println("门的宽度为:" + getWidth() + ",高度为:" + getHight() + ",颜色:" + getColor() + ",门已经打开,请进!");
 }
 // 关门方法
 public void closeDoor() {
 System.out.println("门的宽度为:" + getWidth() + ",高度为:" + getHight() + ",颜色:" + getColor() + ",门已经关闭,禁止进入!");
 }
}
package StudentJavaSEday10;
public class Demo{
 public static void main(String[] args) {
 //创建门对象
 Door door = new Door();
 // 调用方法
 door.openDoor();
 door.closeDoor();
// 创建木头门对象
        WoodDoor woodDoor = new WoodDoor();
 //调用set方法对属性赋值
 woodDoor.setWidth(1.8);
 woodDoor.setHight(2.5);
 woodDoor.setColor("红色");
// 调用方法
 woodDoor.openDoor();
 woodDoor.closeDoor();
 }
}

运行结果:

2.动物类重写题

1、定义动物类,有名称和年龄两个属性,且属性私有化,提供相应的getXxx与setXxx方法,提供无参数的无返回值的吃饭方法,内容为:“吃饭...”;

2、定义猫类,继承动物类,重写父类中的吃饭方法,内容为:“猫吃鱼...”

3、定义狗类,继承动物类,重写父类中的吃饭方法,内容为:“狗吃骨头...”

4、定义测试类,分别创建猫对象和狗对象,并分别给父类对象中的名称和年龄属性赋值;

5、分别使用猫对象和狗对象获取名称和年龄的属性值并打印在控制台上;

6、分别使用猫对象和狗对象调用吃饭方法;

代码实现:

package StudentJavaSEday10;
/*
 * 动物类:
 *  属性:
 *  名称
 *  年龄
 *  方法:
 *  吃饭方法
 *  getXxx与setXxx
 */
public class DongWu {
 // 属性
 private String name;
 private int age;
 // getXxx与setXxx
 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 void chiFan() {
 System.out.println("吃饭...");
 }
}
package StudentJavaSEday10;
/*
 * 狗类继承动物类
 */
public class Gou extends DongWu{
 public void chiFan() {
 System.out.println("狗吃骨头...");
 }
}
package StudentJavaSEday10;
/*
 * 猫类继承动物类:
 */
public class Mao extends DongWu{
 //重写吃饭的方法;
 public void chiFan() {
 System.out.println("猫吃鱼...");
 }
}
package StudentJavaSEday10;
/*
 * 测试类
 */
public class Test {
 public static void main(String[] args) {
 // 1、分别创建猫对象和狗对象,并分别给父类对象中的名称和年龄属性赋值
 Mao m = new Mao();
 m.setName("波斯猫");
 m.setAge(3);
 Gou g = new Gou();
 g.setName("哈巴狗");
 g.setAge(2);
 // 2、分别使用猫对象和狗对象获取名称和年龄的属性值并打印在控制台上;
 String name = m.getName();
 int age = m.getAge();
 String name2 = g.getName();
 int age2 = g.getAge();
 System.out.println("猫的名字为:" + name + ";年龄为:" + age);
 System.out.println("狗的名字为:" + name2 + ";年龄为:" + age2);
 // 3、分别使用猫对象和狗对象调用吃饭方法
 m.chiFan();
 g.chiFan();
 }
}

运行结果: