继承
提高代码的复用性
让类与类之间产生了关系,有了这个关系,才有了多态的特性
java只支持单继承,不支持多继承,但java保留这种机制,并用另一种体现
形式来完成表示:多实现
支持多层继承
子父类中变量的特点
类成员的特点
1,变量
如果子类中出现非私有的同名成员变量时,
子类要访问本类中的变量,用this,this代表本类对象引用
子类要访问父类中的同名变量,用super,super代表父类对象引用
2,函数
当子类出现和父类一模一样的函数时,
当子类对象调用该函数,会运行子类函数的内容,父类的函数被覆盖了
这种情况是函数的另一个特性:重写(覆盖)
覆盖:
1,子类覆盖父类,必须保证子类权限大于等于父类权限,才能覆盖,
否则编译失败
2,静态只能覆盖静态
重载和重写
重载:只看同名函数的参数列表
重写:子父类的方法要一模一样
当子类继承父类,沿袭了父类的功能,到子类中,但是子类虽具备该功能,
但功能的内容却和父类不一致,这时,没有必要定义新功能,而是使用覆盖
特性,保留父类的功能定义,并重写功能内容
3,构造函数
子类的构造函数第一行有一条隐士的语句
super();
用来调用父类中的空参的构造函数
因为父类中的数据子类可以直接获取,所以子类对象在建立时,需要先产看父类
是如何对这些数据初始化,所以子类的对象初始化时,要先访问一下父类中
的构造函数
如果要访问的父类中指定的构造函数,可以通过手动定义super语句的方式来指定
如果要访问父类没有空参数的构造函数,必须手动指定super要访问父类中的哪一个
子类中至少会有一个
构造函数回访完父类中的构造函数
例如:
class A
{
A(int x)
{
System.out.println("A");
}
}
class B extends A
{
B()
{
super(数值);手动定义super语句来访问父类构造函数
System.out.println("B");
}
}
final关键字
被final修饰的类,不可以被继承,为了避免被继承
被子类复写,把子类进行final
被final修饰的方法,不可以被复写
被final修饰的变量,是一个常量,只能赋值一次
既可以修饰成员变量,又可以修饰局部变量,
当在描述事物时,一些数据的出现值是固定的,这时为了
增强阅读性,都给这些值起个名字,方便阅读,而这个值
不需要改变,而加上final修饰
内部类定义在类中的局部位置上是,只能访问该局部
被final修饰的局部变量
|