一、继承
1、继承的概念
在现实生活中,继承一般指的是子女继承父辈的财产。在程序员中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如猫狗都属于动物,程序中就可描述猫和狗继承自动物。
2、重写父类方法
在继承关系中,子类会自动继承父类中定义的方法,但有时在子类中需要对继承的方法进行一些修改及对父类的方法进行重写。需要注意的是,在子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表以及返回值类型。
3、super关键字
当子类重写父类的方法后,子类对象将无法访问父类被重写的方法,可以用super关键字来访问父类的成员变量、成员方法和构造方法。
4、final关键字
final关键字可用于修饰类、变量和方法,它有“这是无法改变的”或者“最终”的含义,因此被final修饰的类、变量和方法将具有以下的特性:
- final修饰的类不能被继承
- final修饰的类不能被子类重写
- final修饰的变量(成员变量和局部变量)是常量,只能被赋值一次
新建一个动物类
新建一个猫类,为动物类的子类,并重写了父类的方法
新建一个狗类,为动物类的子类,并重写了父类的方法
新建一个测试类,创建猫和狗的对象并对方法进行调用
运行的结果如下
二、多态
- 在同一个方法中,这种由于参数类型不同而导致执行效果各异的现象就是多态。
- 在Java中为了实现多态,允许使用一个父类类型的变量来引来一个子类类型的对象,根据被应用子类对象特征的不同,得到不同的运行结果。在Java中为了实现多态,允许使用一个父类类型的变量来引来一个子类类型的对象,根据被应用子类对象特征的不同,得到不同的运行结果。
接下来通过一个案例来演示
新建一个food类
新建一个noodles类,并重写父类的方法
新建chicken类,并重写父类的方法
创建foodtool类
新建一个测试类
运行结果如下
多态不仅解决了方法同名的问题而且还是程序变得更加灵活,从而有效的提高了程序的可扩展性和可维护性