类的继承:
好处:
1,提高了代码的复用性。
2,让类与类之间产生了关系。有了这个关系,才有了多态的特性。
注意:
千万不要为了获取其他类的功能,简化代码而继承。
必须是类与类之间有所属关系才可以继承。
Java语言中:java只支持单继承,不支持多继承。但支持多实现。
java支持多层继承。也就是一个继承体系
出现继承后,子父类的特点:
1,变量
如果子类中出现非私有的同名成员变量时,子类要访问本类中的变量,用this子类要访问父类中的同名变量,用super。
2,子父类中的函数。
当子类出现和父类一模一样的函数时,当子类对象调用该函数,会运行子类函数的内容。这种情况是函数的另一个特性:重写(覆盖)。
覆盖:
1)子类覆盖父类,必须保证子类权限大于等于父类权限,才可以覆盖,否则编译失败。
2)静态只能覆盖静态。
重载与覆盖的区别:
重载:只看同名函数的参数列表。
覆盖:子父类方法要一模一样。
3,子父类中的构造函数。
在对子类对象进行初始化时,父类的构造函数也会运行,那是因为子类的构造函数默认第一行有一条隐式的语句 super(),会访问父类中空参数的构造函数。而且子类中所有的构造函数默认第一行都是super()。
注意:
super语句一定定义在子类构造函数的第一行。
当父类中没有空参数的构造函数时,子类必须手动通过super语句形式来指定要访问父类中的构造函数。
子类中至少会有一个构造函数会访问父类中的构造函数。
final修饰符 :
1,可以修饰类,函数,变量。
2,被final修饰的类不可以被继承。为了避免被继承,被子类复写功能。
3,被final修饰的方法不可以被复写。
4,被final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量,有可以修饰局部变量。
5,内部类定义在类中的局部位置上是,只能访问该局部被final修饰的局部变量。