一.向上转型
上代吗:
这里我们定义了三个java文件,这里用ANM来接受一个Dog类型的类,我们发现不会报错,这就是发生了向上转型,由子类变成了父类
二.方法的重写
那么我们应该如何调用子类的函数呢
首先我们试一下直接调用:
我们发现报错了,就是父类中我们没有eat方法,当我么在父类中加入方法我们在来看看结果
我们发现运行成功了,但是打印出来的不是父类的eat,是子类的,这就是方法的重写,
当父类和子类方法名称一样时,参数一样时,返回值一样(或者返回值构成父子关系)就会构成方法的重写
从而形成多态,一个东西,很多种形态。
三.抽象类
我们发现,当发生多态的时候,父类的eat函数好像就会没有作用,但是我们不写那个函数又会报错,所以我们就可以写一个抽象类
我们在类的开头加入abstract关键字,在方法前面也要加上abstract,表示这是一个抽象方法,
抽象类里面也可以包含普通方法!!!!
可以这么说,抽线方法就是来继承的。
四.实例化抽像类
当我们实例化抽象类的时候,需要重写里面的抽象方法
上代码:
这里我们必须重写抽象方法才可以使用这个类.