一.基本定义
基本原则:封装确定的,稳定的成员;而把那些可能改变的写为抽象类,由子类去实现。除非是明确要改变基类的功能,不要改变封装好的代码,子类的增改在此基础上由自身去实现。
示例代码
如果不采用抽象方法,我们创建一个父类引用指向子类对象:Vehicle Car = new Car();
由于Cat是继承自它的父类Animal,所以Animal类型的引用是可以指向Cat类型的对象的。这就是“向上转型”。这样既可以使用子类强大的功能,又可以抽取父类的共性。 所以,父类类型的引用可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,父类引用是无法调用的;
那么如果我想编写一个种类的基类,种类之间都有相同方法,但具体实现需求不同。那么我就需要很多很多的抽象类,那会不会一个抽象类中的所有方法都是抽象的呢?
当然有!这就是接口——
实例代码
接口通过interface关键词来实现,并且以I开头。由于其中全是抽象方法,所以省略了pu