黑马程序员技术交流社区
标题:
分享一下
[打印本页]
作者:
nanliner
时间:
2016-5-25 00:18
标题:
分享一下
/*
奥迪车案例
奥迪车:
普通奥迪车(CommonAudi): name奥迪a3 price 30万
高端奥迪车(High_EndAudi): name奥迪a8 price 72万
普通奥迪车:
属性:姓名,价钱
行为:跑
高端奥迪车:
属性:姓名,价钱
行为:跑,自动泊车automaticParking,无人驾驶automaticDrive
共性:
都是奥迪车
姓名,价钱
跑
高端奥迪车额外功能:
自动泊车(automaticParking)
无人驾驶(automaticDrive)
实现:
从抽象到具体
使用:
使用具体类
定义一个接口:
interface Function{}
*/
interface Function {
public abstract void automaticParking();
public abstract void automaticDrive();
}
abstract class Audi {
private String name;
private int price;
public Audi() {}
public Audi(String name,int price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public abstract void run();
}
class CommonAudi extends Audi {
public CommonAudi() {}
public CommonAudi(String name,int price) {
super(name,price);
}
public void run() {
System.out.println("跑起来溜溜滴");
}
}
abstract class High_EndAudi extends Audi {
public High_EndAudi() {}
public High_EndAudi(String name,int price) {
super(name,price);
}
public void run() {
System.out.println("跑起来真拉风");
}
}
//具体类实现接口
class NiceAudi extends High_EndAudi implements Function {
public NiceAudi() {}
public NiceAudi(String name,int price) {
super(name,price);
}
public void automaticParking() {
System.out.println("拥有自动泊车功能");
}
public void automaticDrive() {
System.out.println("并且可以无人驾驶");
}
}
class AudiDemo {
public static void main(String[] args) {
Audi a = new CommonAudi();
a.setName("Audi a3");
a.setPrice(30);
System.out.println(a.getName()+" "+a.getPrice()+"万元");
a.run();
System.out.println("----------");
a = new CommonAudi("Audi a3",30);
System.out.println(a.getName()+" "+a.getPrice()+"万元");
a.run();
System.out.println("----------");
NiceAudi na = new NiceAudi();
na.setName("Audi a8");
na.setPrice(72);
System.out.println(na.getName()+" "+na.getPrice()+"万元");
na.automaticParking();
na.automaticDrive();
na.run();
System.out.println("----------");
na = new NiceAudi("Audi a8",72);
System.out.println(na.getName()+" "+na.getPrice()+"万元");
na.automaticParking();
na.automaticDrive();
na.run();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2