千锋教育Java入门全套视频教程(java核心技术,适合java零基础,Java

14、抽象类和抽象方法
当父类的某些方法,需要声明,但是又不确定如何实现时,可以将其声明为抽
象方法,那么这个类就是抽象类
//即: 父类方法不确定性的问题 //===> 考虑将该方法设计为抽象(abstract)方法 //===> 所谓抽象方法就是没有实现的方法 //===> 所谓没有实现就是指,没有方法体 //===> 当一个类中存在抽象方法时,需要将该类声明为abstract类 //===>一般来说,抽象类会被继承,由其子类来实现抽象方法。
14.1抽象类:
1、必须是父类---抽取共同部分来做父类
2、抽象类不允许实例化---抽象父类是一个抽象概念,实例化之后会有问题
4、抽象类可以没有abstract方法,可以有能实现的方法
5、一旦类包含了abstract方法,则这个类必须声明为abstract
6、abstract 只能修饰类和方法,不能修饰属性和其它的
7、抽象类可以有任意成员[抽象类本质还是类],比如: 非抽象方法、构造器
、静态属性等等
8、抽象方法不能有主体,即不能实现,方法没有{方法体}
9、抽象类可以有构造函数,子类调用
10、如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为abstract类
abstract class F extends E { } class G extends E { @Override public void hi(){ //这里相当于G子类实现了父类E的抽象方法,所谓实现方法,就是有方法体 }
11、抽象类能完成的,普通类都能完成。
12、抽象类能继承抽象类
13、抽象方法不能使用private、final 和 static来修饰,因为这些关键字都是和重写相违背的.
14.2抽象方法:
1、用abstract修饰的方法
2、抽象方法没有方法体——必须是子类实现方法
(本地方法native也没有方法体)——调操作系统的方法
3、抽象方法一定被非抽象子类重写
抽象子类可能重写父类的抽象方,目的是让子类减少重写。
4、抽象方法所在的类一定是抽象类
5、抽象类中可以没有抽象方法,一般是设计初期
6、抽象类可以继承普通类,也可以继承抽象类
7、抽象类不能是final
8、抽象类类写静态方法