知识内容涉及到继承,引用多态,对象,重写,输入输出,正则表达式。
package Vehicle;
public class Aircraft extends Vehicle{
public void travel() {
System.out.println("空中上行驶");
}
public void passengerCapacity () {
System.out.println("载客量150人");
}
}
package Vehicle;
public class Automobile extends Vehicle {
public void travel() {
System.out.println("陆上行驶");
}
public void passengerCapacity () {
System.out.println("载客量60人");
}
}
package Vehicle;
public class Ship extends Vehicle{
public void travel() {
System.out.println("水上行驶");
}
public void passengerCapacity () {
System.out.println("载客量200人");
}
}
package Vehicle;
public class Vehicle {
public void travel() {
System.out.println("行驶方式");
}
public void passengerCapacity () {
System.out.println("载客量");
}
}
package Vehicle;
import java.util.Scanner;
public class run extends Check {
public static void main(String[] args) {
Vehicle ship=new Ship(); //父类引用子类对象。
Vehicle automobile=new Automobile();
Vehicle aircraft=new Aircraft();
Aircraft aircraft1=new Aircraft();
System.out.println("本店有1.汽车,2.轮船,3.飞机三种类型交通工具出售");
System.out.println("请输入你需要购买的交通工具类型");
Scanner n1 = new Scanner(System.in);
String m1 = n1.next();
int t=Check.l(m1);
switch (t) {
case 1:
ship.travel(); //方法重写
ship.passengerCapacity(); //方法重写
break;
case 2:
automobile.travel();
automobile.passengerCapacity();
break;
case 3:
aircraft.travel();
aircraft.passengerCapacity();
break;
}
}
}
package Vehicle;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Check {
public static int l(String a) {
int re2 = 0;
Pattern p = Pattern.compile("^-?\\d+$"); //
Matcher m1 = p.matcher(a); // 对比
boolean b1 = m1.matches();// 对比
if (b1 == true) {
int i = Integer.parseInt(a);
if (i > 0 && i < 4) {
return i;
} else {
System.out.println("您输入的内容有误,请重新运行本程序");
System.exit(0);
}
}
return re2;
}
}