抽象类的简单学习
今天学Java抽象类,之前真的懵了好久。
书上说用abstract修饰,不能new对象,有抽象方法的类必须是抽象类,子类必须重写所有抽象方法。我合上书有一个问题:这玩意儿到底有啥用?我直接写子类不行吗?多写几行代码怎么了?
直到看到那个"半成品模板+定规矩"的说法,突然一下就通了。原来抽象类根本不是让你直接用的,它就是个"通用底座"。比如写动物类,狗和猫都有名字、都会吃饭,这些重复的代码就可以抽出来放在Animal里,不用每个子类都写一遍。而叫声这种每个动物都不一样的东西,就写成抽象方法,相当于给所有子类立个规矩:"你们既然是动物,就必须会叫,具体怎么叫你们自己定,但不能没有。"
之前写代码总觉得面向对象就是把东西分成类,现在才明白一点它的精髓:原来不是为了分而分,是为了复用和规范。今天踩了好几个坑,比如试图new一个Animal对象报错,子类漏写了cry()方法编译不通过,现在终于记住了。
原来那些看起来莫名其妙的语法规则,背后都是为了解决实际写代码时的麻烦。
浙公网安备 33010602011771号