Java接口

描述

运用 Java 接口,在接口中声明 方法,对象实现接口中 抽象方法

题目

我们计划设计一个机动车管理系统,请设计类及接口 ,类之间的关系及接口如下:

类之间关系:

  • 汽车类
    • 奔驰车
    • 宝马车
  • 摩托车类
    • 雅马哈摩托
    • 宝马摩托

机车类:

​ 属性:品牌、价格

​ 行为:运行

接口: GPS 导航功能。

宝马车具有 GPS 导航功能。

题目解决思路

  1. 设计一个机车类,所有汽车与摩托车继承机车类。
  2. 根据不同车型,设计对应的所有类。
  3. 宝马车需要实现 GPS 接口。

代码具体实现

机车类代码:

public abstract class Vehicle { // 机动车属性: 品牌、价格 private String brand; private String price; // 车辆信息展示 public void showInfo(){ System.out.println("品牌:" + brand + "价格:" + price); } // 行为: 运行 public abstract void driver(); // 无参构造 public Vehicle() { } // 有参构造 public Vehicle(String brand, String price) { this.brand = brand; this.price = price; } public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } }

汽车类代码:

public class JavaTeacher extends Staff{ // 无参构造 public JavaTeacher() { } // 全参构造 public JavaTeacher(String name, String sex, int age) { super(name, sex, age); } // 工作方法 @Override public void work() { System.out.println("java 讲师正在授课\n"); } }

摩托车类代码:

public class UITeacher extends Staff implements Draw{ // 无参构造 public UITeacher() { } // 全参构造 public UITeacher(String name, String sex, int age) { super(name, sex, age); } // 重写工作方法 @Override public void work() { System.out.println("UI 讲师正在授课"); } // 实现绘画方法 @Override public void draw() { System.out.println("UI 讲师正在绘画\n"); } }

奔驰车类代码:

public class Benz extends Car{ // 无参构造 public Benz() { } // 全参构造 public Benz(String brand, String price) { super(brand, price); } // 重写运行方法 @Override public void driver() { super.driver(); System.out.println("奔驰启动..."); } }

宝马车类代码:

public class BMW extends Car implements GPS { // 无参构造 public BMW() { } // 全参构造 public BMW(String brand, String price) { super(brand, price); } @Override public void driver() { super.driver(); System.out.println("宝马运行..."); } @Override public void gps() { System.out.println("开始导航..."); } }

雅马哈摩托代码:

public class YMH extends Motor{ // 无参构造 public YMH() { } // 全参构造 public YMH(String brand, String price) { super(brand, price); } @Override public void driver() { super.driver(); System.out.println("雅马哈摩托运行..."); } }

宝马摩托代码:

public class BMotor extends Motor { // 无参构造 public BMotor() { } // 全参构造 public BMotor(String brand, String price) { super(brand, price); } @Override public void driver() { super.driver(); System.out.println("宝马摩托运行..."); } }

测试类代码:

public class TestDmeo { public static void main(String[] args) { System.out.println("嗨客网(www.haicoder.net)\n"); Benz bz = new Benz("奔驰","100000"); bz.showInfo(); bz.driver(); System.out.println(""); BMW bm = new BMW("宝马","2000000"); bm.showInfo(); bm.gps(); bm.driver(); System.out.println(""); YMH ymh = new YMH("雅马哈","10000"); ymh.showInfo(); ymh.driver(); System.out.println(""); BMotor bmotor = new BMotor("宝马摩托","20000"); bmotor.showInfo(); bmotor.driver(); } }

运行结果如下图:

02_java接口.png

以上案例运用 Java 抽象类抽取共性内容,子类 继承 父类,重写运行方法,接口实现 GPS 导航方法,宝马车实现导航功能。