版权声明:该博客由石头猿在学习过程中自行总结的原创,博客中代码仅供参考,禁止使用非法途径! https://blog.csdn.net/qq_35981996/article/details/84348569
创建自定义的异常类需要继承自Exception类,并提供含有一个String类型形参的构造方法,该形参就是一场的描述信息,可以通过getMessage()方法获得。例如:
public class NullPointerException extends Exception{
public NullPointerException(String message) {
super(message);
}
}
建立一个抽象德汽车父类,并创建显示信息的方法getInfo()
public abstract class Polymorphic102 {
public abstract void getInfo();
}
分别建立两个子类(BMW&Benz)继承父类,并重写父类的getInfo方法用来打印相关信息:
public class Benz102 extends Polymorphic102 {
@Override
public void getInfo() {
//return "Benz";
System.out.println("宾利");
}
}
public class BMW102 extends Polymorphic102 {
@Override
public void getInfo() {
// return "BMW";
System.out.println("宝马");
}
}
编写测试类进行测试:
import java.util.Scanner;
public class Test102 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入需要购买的品牌");
try {//监控异常
String name = input.nextLine();
Polymorphic102 car = getCar(name);
car.getInfo();
} catch (NullPointerException e) {
System.out.println("车库无此类品牌车");
}
}
//通过创建一个静态的方法来进行实例化
//通过throws在类中声明之前自定义的异常,表示在运行中可能会出现该类异常
//在本类中不处理该异常,通过调用该方法的对象去监控处理!
public static Polymorphic102 getCar(String name)throws NullPointerException{
if(name.equalsIgnoreCase("BMW")){
return new BMW102();
}
if(name.equalsIgnoreCase("Benz")){
return new Benz102();
}
else{
//抛出异常
throw new NullPointerException("车库无此类品牌车");
}
}
}
通过上面例子我们可以实现用户自行选择购车功能,当用户输入品牌时车库无此类品牌时就会触发异常,然后进行处理: