为什么要有抽象类?

我的父类有个空的方法,然后子类继承父类,实现那个空的方法。我觉得这就行了,没必要把父类中空的方法整成抽象的,紧接着父类也抽象成抽象类,感觉这么做,有点多此一举,为什么要有抽象类呢?

抽像类可以控制子类必须实现特定的方法 ,
别人也不能直接实例你的抽像类,必须 实例抽像类的实现类

多看一些开源的代码,看看设计模式就知道为什么要有抽象类.

有些东西不是说下就能明白的,还是得代码 写到一定程度 就会有体会 的

抽象类可以告诉类的使用者,这是一个抽象类,不能被实例化.
而且实现它的子类必须要实现特定的抽象方法.
普通的类就没有这些限制了,用抽象类更安全,防止调用者误用

刚才仔细想了想“我的父类有个空的方法,然后子类继承父类,实现那个空的方法。”

如果是带有返回值的方法呢?比如
抽象类可以写成 public abstract int sum();
而父类必须有返回值,至少得是 public int sum(){return xx;},已经不是空方法了。
如果子类继承父类,忘了重写sum方法的话,那就很危险,父类的方法已经不是子类想要的了。而抽象类规定子类必须要实现抽象方法,所以不会忘记写sum方法,很安全。

不知道我说的对不对,刚学java不久,共同交流。