本文章主要记录我对继承,多态,重载,重写的感悟。
继承:
首先我们应该明白java里的类的种类
普通类:使用class定义且不含有抽象方法的类。
抽象类:使用abstract class定义的类,它可以含有,也可以不含有抽象方法。
接口类:使用interface定义的类。
然后我们应该知道继承的定义: 继承可以使得子类具有父类的 属性 和 方法 或者重新定义、追加属性和方法。他的作用是使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。
三种类的继承关系为:
普通类可以继承(extends)普通类,可以继承(extends)抽象类,可以继承(implements)接口。
抽象类可以继承(extends)普通类,可以继承(extends)抽象类,可以继承(implements)接口。
接口只能继承(extends)接口。
实验一里的concretevertex和concreteedge都是对graph的继承。
多态:多态就是以继承为基础实现的,表现为接口的多种不同的实现方式。多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术。
例如实验一里的图的接口分为具体类的点实现和线实现,二者的基础的数据类型不同但都实现了父类图的基本功能,都可以通过测试代码。
重载与重写:
重载和重写都是针对方法的概念,在弄清楚这两个概念之前,了解一下方法的型构。型构就是指方法的组成结构,具体包括方法的名称和参数,涵盖参数的数量、类型以及出现的顺序,但是不包括方法的返回值类型,访问权限修饰符,以及abstract、static、final等修饰符。
我们应该明白二者的区别:1、重载: 必须具有不同的参数列表;可以有不同的访问修饰符。 2、重写: 参数列表必须完全与被重写的方法相同;返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写。