诸位前辈,今天在看java时,学习到了抽象类这个概念,如果在父类方法中定义一个抽象的方法,子类继承的时候还需要复写这个方法,而且必须将父类的所有抽象方法都复写完毕,但是我突然意识到,为什么一定要定义抽象方法呢,我在子类中重新写一个方法不就可以了,这个仅仅是为了用父类来约束定义子类中必须存在某个方法吗?
------解决思路----------------------
你说的没错。假如我们有一个 Shape 类,它有很多子类,不管对象是哪个子类,我们都用 getArea 方法来计算面积,这就要求所有子类都必须实现该方法。为了避免有的程序员会忘记实现这个方法,就要强制该方法必须实现,否则连编译都通不过,这事不能靠程序员自觉去实现。
------解决思路----------------------
可能一开始意识不到定义父类的优点,等需要创建好多子类,而这些子类又都有一些相同的属性和方法的时候,就能体会到父类的优点了,这也体现了代码重用的一个原则
------解决思路----------------------
面向对象的核心就是多态,一切的封装, 继承,一切的一切都是为多态服务, 理解了多态,你自然就会明白为啥要抽象。
------解决思路----------------------
java中的抽象类和接口差不多,都是定义一种规范,由子类去完成实际的操作。不同的子类表现出不同的特性。另外抽象类和接口可以定义命名的规范,其实就是规范化代码结构。使代码看起来更清晰,有层次
------解决思路----------------------
抽象类和接口 其子类或者说是实现类 必须重写定义的抽象方法
它们就像是一种标准,你要用它,必须遵循它的规则!
反过来想,如果不需要我们强制实现的话,
这个规则我们可以不遵循,那它就真的是没有存在的意义了!