创建汽车接口
/**
* 功能:汽车接口
* 作者:许锐
* 日期:2022年05月12日
*/
public interface Car {
void start();
void run();
void stop();
}
创建司机类
/**
* 功能:司机类
* 作者:许锐
* 日期:2022年05月12日
*/
public class Driver {
private String name;
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public void drive(Car car){
if (car instanceof Benz){
Benz benz = (Benz) car;
benz.speak();
}
car.start();
car.run();
car.stop();
}
/**
*成员内部类Benz
*/
class Benz implements Car{
private String model;
private double price;
private String color;
public String getModel(){
return model;
}
public void setModel(String model) {
this.model = model;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price =price;
}
public String getColor(){
return color;
}
public void setColor(String color){
this.color = color;
}
@Override
public void start() {
System.out.println("奔驰[" + model + "]起步.....");
}
@Override
public void run() {
System.out.println("奔驰[" + model + "]行驶.....");
}
@Override
public void stop() {
System.out.println("奔驰[" + model + "]停止.....");
}
public void speak(){
System.out.println(color+"奔驰["+ model +"]单价:"+ price +"万~");
}
}
}
测试司机类
/**
* 功能:测试司机类
* 作者:许锐
* 日期:2022年05月12日
*/
public class TestDriver {
public static void main(String[] args){
//创建司机对象(外部类对象)
Driver driver = new Driver();
// 设置司机对象属性
driver.setName("唐小刚");
// 基于司机对象(外部类对象)创建奔驰对象(内部类对象)
Driver.Benz benz = driver.new Benz();
// 设置奔驰对象的属性
benz.setModel("梅赛德斯-AMG A 35 L 4MATIC");
benz.setPrice(45);
benz.setColor("蓝色");
// 调用司机对象的驾驶办法
driver.drive(benz);
}
}
运行程序,查看结果
运行TestDriver类