第13讲 :final关键字
final可以用于类的前面(成为最终类也就是说这个类不能有子类)。
如果一个方法修饰为final方法,那么这个方法就不能被子类重写,同时,final方法的行为是不允许子类篡改的。
虽然final修饰的方法不能被子类重写,但是可以被子类继承。
final修饰的成员变量,对象虽然可以操作使用它,但是不能对它进行更改操作。
第14讲:抽象类和接口
一、抽象类
1.1、abstract关键字
abstract抽象修饰符可以修饰方法和类,使用abstract修饰符修饰的方法称为抽象方法,使用abstract修饰符修饰的类称为抽象类。在抽象方法中是没有方法体的,并且以分号结尾。
1.2、抽象类的定义
当一个类中具有抽象方法时,该类就被视为一个抽象类。
注意:抽象类不能创建对象也就是不能给抽象类创建类的实例(抽象类不能用new创建对象)
当子类继承抽象类时,必须对父类中的所有抽象方法进行重写,也就是说,如果父类有两个抽象方法那么子类继承后必须实现父类的两个抽象方法,否则子类也必须定义为抽象类。如果子类把父类的所有抽象方法都进行重写了那么该子类就不是抽象类了。
1.3、抽象方法的限制
final方法不能为抽象方法,这是因为final的方法不能被重写,但是抽象方法必须经过子类重写才能被使用
私有方法不能被定义为抽象方法,私有方法并不能被子类继承,而抽象方法必须被子类继承,然后重写实现。
静态方法不能被定义为抽象方法,因为抽象方法所在的抽象类是不能创建对象的,也就是不能够被实例化的。但是静态方法是可以通过类名调用,这样调用抽象方法是没有任何意义的
二、接口
接口的定义
接口和父类有很多相似的地方,在程序中也是这样的,但是他们表示的含义完全不同。但是接口对外提供的是一个窗口的功能,子类可以同时接收多个接口,而一个子类只能有一个父类,interface是定义接口的关键字,当有该关键字时,就表示这里定义的是一个接口,和class命名的规则相同。abstract关键字并不是必须的,如果定义时不给出系统也会自动加上。当一个类实现一个接口时,需要使用implements关键字,后面跟上接口名,位置是和extends关键字继承父类一样的。接口的定义和实现。
接口中的方法是抽象的不能直接使用,只有在实现接口的类中,重写方法后才能被使用。
在实现接口时,一个类可以同时实现多个接口,当一个类实现多个接口时,需要重写所有接口中的所有方法。实现的接口之间使用逗号隔开。
三、抽象类和接口的区别
接口是抽象类的特殊版本。接口里的方法必须都为抽象的,而抽象类里可以为抽象的也可以有其他形式的存在。
0813final关键字、抽象类和接口
最新推荐文章于 2022-12-09 14:21:12 发布