多态
通过继承实现多态。
向上转型的时候,Anmial cat=new cat();父类引用指向子类实例,可以调用父类方法子类重写的方法,子类独有方法不可以
当父类只知道子类有某个方法但是不知道具体实现的时候可以应用抽象类加abstract关键字,避免了没有意义的实例化父类,。
为了更简单,可以吧父类方法定义成抽象方法,此时子类必须重写此方法,达到多态。或者子类可以也成为抽象类,使他的抽象性质继续维持下去,此时的子类不能实例化,抽象方法没有方法体
为什么使用抽象类?父类有些方法只是为了限制子类必须要有这个能力,而且这个能力在不同的子类的 实现方式不同,,这个方法没必要在父类去实例化,而且你也需要提醒子类,必须继承这个方法。编译器自动提醒。
如果每个产品有交叉相似的特性,用接口来实现,不用有方法体。对于接口而言 ,可以多继承,实现所有父亲的方法即可,如果父亲接口中有同名方法,那子类只需重写自己的方法,只要重名即可。