抽象方法和抽象类
1.抽象方法:
(1)用abstract修饰的方法,没有方法体,只有声明。
(2)抽象方法必须用public或者protected,缺省情况下默认为public;
2.抽象类:
(1)概念:包含了抽象方法的类就是抽象类。
在网上看到一个觉得不错的例子,引入方便理解
在生活中,你肯定用过这个词语--东西
你要的是水杯类的对象,而东西是水杯的父类,通常东西类(这里理解为抽象类)没有实例对象,但我们有时需要东西的引用来指向它的之类实例。
(2)特点:不能创建实例
(3)意义
抽象类更利于代码的维护和重用。
维护:比如本科和研究生可以抽象成学生,他们有相同的属性和方法。这样当你对其中某个类进行修改时会受到父类的限制,这样就会提醒开发人员有些东西不能进行随意修改,这样可以对比较重要的东西进行统一的限制,也算是一种保护,对维护会有很大的帮助。
重用:比如学校又新产生了专科生这类学生,那么专科生直接继承学生,然后对自己特有的属性和方法进行补充即可。这样对于代码的重用也是很好的体现。
(4)注意
有抽象方法的类只能定义成抽象类
抽象类不能实例化
抽象类可以包含属性、方法和构造器,但是构造器不能用new来实例化,只能用来被之类调用
抽象类只能用来被继承
抽象方法必须被之类实现
抽象类不能用final声明,因为抽象类必须有子类,而final定义的类不能有子类
子类对象实例化的时候,先执行父类的构造方法,再执行子类的构造方法
1.抽象方法:
(1)用abstract修饰的方法,没有方法体,只有声明。
(2)抽象方法必须用public或者protected,缺省情况下默认为public;
2.抽象类:
(1)概念:包含了抽象方法的类就是抽象类。
在网上看到一个觉得不错的例子,引入方便理解
在生活中,你肯定用过这个词语--东西
你要的是水杯类的对象,而东西是水杯的父类,通常东西类(这里理解为抽象类)没有实例对象,但我们有时需要东西的引用来指向它的之类实例。
(2)特点:不能创建实例
(3)意义
抽象类更利于代码的维护和重用。
维护:比如本科和研究生可以抽象成学生,他们有相同的属性和方法。这样当你对其中某个类进行修改时会受到父类的限制,这样就会提醒开发人员有些东西不能进行随意修改,这样可以对比较重要的东西进行统一的限制,也算是一种保护,对维护会有很大的帮助。
重用:比如学校又新产生了专科生这类学生,那么专科生直接继承学生,然后对自己特有的属性和方法进行补充即可。这样对于代码的重用也是很好的体现。
(4)注意
有抽象方法的类只能定义成抽象类
抽象类不能实例化
抽象类可以包含属性、方法和构造器,但是构造器不能用new来实例化,只能用来被之类调用
抽象类只能用来被继承
抽象方法必须被之类实现
抽象类不能用final声明,因为抽象类必须有子类,而final定义的类不能有子类
子类对象实例化的时候,先执行父类的构造方法,再执行子类的构造方法