Java:抽象类继承非抽象类,且不包含抽象方法有何负面作用吗?

我定义了一个抽象类

继承非抽象类,

且不包含抽象方法

但是运行 OK

这样做有啥负面作用?

public abstract class ExceptionBase extends Exception {
  protected int status;
  protected int code;

  public ExceptionBase(String msg){
    super(msg);
  }

  public ExceptionBase(int status, int code, String msg){
    super(msg);
    this.status = status;
    this.code = code;
  }

  public int getStatus() {
    return status;
  }

  public void setStatus(int status) {
    this.status = status;
  }

  public int getCode() {
    return code;
  }

  public void setCode(int code) {
    this.code = code;
  }

  public String toString(){
    return String.format("%s [status=%i, code=%d, message=%s]", this.getClass().getSimpleName(), status, code, getMessage());
  }
}
蝴蝶刀刀
浏览 467回答 3
3回答

温温酱

Object类是非抽象的,而所有类都继承了Object。确定是否用继承 要确定是 is-a 关系 而不是 has-a

侃侃尔雅

感觉abstract class表示的是"is a"关系,interface表示的是"like a"关系

动漫人物

没有什么负面作用 ExceptionBase的作用是什么?:提供一套标准的toString()方法,明确详尽的展示异常信息 抽象类的与普通类的区别是,你无法实例化抽象类对象 你不希望你的系统内部直接用ExceptionBase,而是希望 用OrderException,PaymentException等更详尽、细致的自定义异常的时候,采用这种方式我反而觉得很好 大体是 OrderException extends ExceptionBase这之类的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java