继承的产生场景:
是指多个类如果有共性的属性或者行为,但是这些类之间没有任何关系,可以将所有共性的属性和行为抽取出来,成为一个新的类,这个类称为父类,这些含有父类中属性或者行为的类称为子类,子类只需要继承父类,便不用定义父类拥有的属性或行为,可以直接调用父类的属性和行为;
继承是指子类对象可以直接调用父类对象的所有属性和行为。
私有化字段和方法不能被子类直接调用,私有化语句只有在本类才能被调用。
任何构造方法,第一行都有一个隐式的super();方法,用来初始化父类字段,因为子类对象需要调用父类对象字段和方法,所以必须有super()语句放在构造方法中。
super()语句必须放在第一行,因为初始化动作要先执行。
super()语句和this()语句不能同时存在,因为都是初始化语句,都要放在构造方法第一行执行。
SubFu(){
1、super();
2、显示初始化;
3、构造代码块初始化;
}
子类调用父类构造方法初始化示例:
1
2
3
4
5
6
|
class
Student
extends
Person{
public
Student(String name,
int
age){
//直接调用父类构造方法,初始化子类对象
super
(name,age);
}
}
|
一、final修饰的类,
不能被继承
当某个类不想要被其它类继承时,可以加final修饰符修饰
二、final修饰的方法,
不能够被覆写
当父类中某个方法中的内容不希望被覆写时,可以使用final关键词修饰
三、final修饰的变量,
是常量,只能被赋值一次,常量的常量名最好是大写
某些不需要被修改的变量,可以使用final修饰,变为常量,例如π的值,可以定义为:final int PI=3.14;
定义:在描叙事物时,没有足够的信息描叙这个事物,这是我们就说这个事物时抽象事物。
关键词:
abstract
被abstract修饰的类是抽象类
被abstract修饰的方法是抽象方法,抽象方法没有方法体。
1,抽象类和抽象方法都需要被abstract修饰。
抽象方法一定要定义在抽象类中。
2,抽象类不可以创建实例,原因:调用抽象方法没有意义。
3,只有覆盖了抽象类中所有的抽象方法后,其子类才可以实例化。
否则该子类还是一个抽象类。
之所以继承,更多的是在思想,是面对共性类型操作会更简单。