作業(yè)要求:
1)定義接口--定義查車速的方法
2)實(shí)現(xiàn)接口--根據(jù)車的類型-輸出不同的車速
3)定義抽象類乖杠、抽象方法 --定義一個查車運(yùn)行情況
4)繼承抽象類钠至、重載抽象方法--根據(jù)不同的車得到不同的結(jié)果
開始做時都不明白自己寫的是什么毙沾,不斷百度稿黄。
1)定義接口
public interface VehicleInterface {
public void getVehicleSpeed();
}
2)實(shí)現(xiàn)接口
//第一次實(shí)現(xiàn)
public class VehicleInterfaceImp implements VehicleInterface {
@Override
public String getVehicleSpeed(String type) {
if (Car.AUTOMOBILE.equals(type)) {
return Automobile.SPEED;
}
return null;
}
}
//第二次實(shí)現(xiàn)
public class VehicleInterfaceNewImp implements VehicleInterface {
@Override
public String getVehicleSpeed(String type) {
String speed = "60碼";
if (Car.AUTOMOBILE.equals(type)) {
return speed;
}
return null;
}
}
````
3)定義抽象類
````
public abstract class AbstractCar {
public AbstractCar(){
System.out.println(this.getClass()+ "所有的車都可以跑");
}
public void stop(){
System.out.println(this.getClass()+ "所有的車都可以停");
}
public abstract void run();
}
````
4)繼承抽象類、重載抽象方法
````
//第一次繼承
public class Automobile extends AbstractCar {
public final static String SPEED = "六十碼";
public Automobile() {
System.out.println(this.getClass() + "汽車可以跑的很快");
}
public void run() {
System.out.println("汽車的速度是:" + SPEED);
}
}
//第二次繼承
public class Bridgecar extends AbstractCar {
public final static String SPEED = "五十五碼";
public void run(){
System.out.println("小轎車的速度是:" + SPEED );
}
}
````
測試
```
public class VehicleIterfaceTest {
public static void main(String[] args) {
System.out.println("我是接口----------------------------開始");
VehicleInterface veimp1 = new VehicleInterfaceImp();
VehicleInterface veimp2 = new VehicleInterfaceNewImp();
System.out.println("汽車的速度是:" + veimp1.getVehicleSpeed("automobile"));
System.out.println("汽車的速度是:" + veimp2.getVehicleSpeed("automobile"));
System.out.println("我是接口----------------------------結(jié)束");
System.out.println();
System.out.println("我是抽象類--------------------------開始");
Automobile auto = new Automobile();
auto.stop();
auto.run();
Bridgecar bcar = new Bridgecar();
bcar.run();
System.out.println("我是抽象類--------------------------結(jié)束");
}
}
```
測試結(jié)果
````
我是接口----------------------------開始
汽車的速度是:六十碼
汽車的速度是:60 yards
我是接口----------------------------結(jié)束
我是抽象類--------------------------開始
class pers.qingqian.study.entity.Automobile所有的車都可以跑
class pers.qingqian.study.entity.Automobile汽車可以跑的很快
class pers.qingqian.study.entity.Automobile所有的車都可以停止
汽車的速度是:六十碼
class pers.qingqian.study.entity.Bridgecar所有的車都可以跑
小轎車的速度是:五十五碼
我是抽象類--------------------------結(jié)束
````
改動第三版
````
//定義接口
public interface VehicleInterface {
public void getSpeed();
}
//定義抽象類扫皱、抽象方法治拿、實(shí)現(xiàn)接口
public abstract class AbstractCar implements VehicleInterface {
public void getSpeed() {
this.getStart();
this.printSpeed();
}
public abstract void getStart();
public abstract int speed();
// 輸出速度
public void printSpeed() {
System.out.println("我的啟動速度是:" + this.speed());
}
}
//汽車
public class Automobile extends AbstractCar {
@Override
public void getStart() {
System.out.println("我是汽車....");
}
@Override
public void printSpeed() {
System.out.println("我的啟動速度是:" + this.speed());
}
public int speed() {
return 100;
}
}
//小橋車
public class Bridgecar extends AbstractCar {
@Override
public void getStart() {
System.out.println("我是小橋車...");
}
@Override
public void printSpeed() {
System.out.println("我的啟動速度是:" + this.speed());
}
public int speed() {
return 120;
}
}
//測試類
public class VehicleIterfaceTest {
public static void main(String[] args) {
VehicleInterface veimp1 = new Automobile();
VehicleInterface veimp2 = new Bridgecar();
veimp1.getSpeed();
veimp2.getSpeed();
}
}
//測試結(jié)果
我是汽車....
我的啟動速度是:100
我是小橋車...
我的啟動速度是:120
````
在BF老師指導(dǎo)下摩泪,改寫成簡潔的模樣,看到了點(diǎn)架構(gòu)的影子劫谅,有寫代碼的感覺啦见坑。