java 之 继承 super关键籽 this关键字 final关键字
继承
语法:
使用 extends 来继承
class子类 extends父类{
子类属性
子类方法
}
继承的特点:
1、子类会把父类所有的属性和方法继承下来,final修饰的类是不可以被继承的
2、子类还可以·拥有自己独特的属性和方法
3、父类更通用,子类更具体
4、子类只能获得父类中非private的属性,如果想要继承就得提供公共的set和get方法
私有的方法是无法继承下来的
5、java中只能做单继承
6、Java支持多级继承
继承的好处:提高代码的复用性
super关键字
1、子类实例化的过程中父类的构造器先被调用,然后在调用子类的构造器
2、子类 的构造器内被调用的时候父类的默认构造器就会被调用(父类如果存在着有参数
的构造器,一定要把默认构造器显式的定义出来,否者会被覆盖)
3、子类在调用父类有参数的构造器的时候使用 super(参数列表…)这这时父类的默认
构造器就不会被调用了
4、super()的调用必须放在方法的第一行
5、super可以表示父类的引用,我们可以使用super和this来区分父类和子类中同的属性。在子类中访问属性的查找顺序首先在子类中查找指定的属性名字,如果在子类中没有该属性,那么就去父类中去查找该属性。方法也是一样的当子类和父类有同样的方法时通过子类调用的这个相同的方法时调用的是子类的方法。但是我们也可以通过super对父类的引
来调用父类的方法。
this关键字
1、代表当前类的指定实例和引用
2、可以区分同名属性和局部变量
3、通过this可以调用同类中的构造器(this(),this(参数列表))
4、调用本类里面的属性,this.属性名,this.方法()
final关键字
属性上
final修饰在属性上,属性的值就不能被改变
语法:
权限修饰符 static final 数据类型 属性名 = 值
属性名一般使用采用大写,多个单词使用下划线来分隔。而且这种常量多定义在接口中
方法上
final修饰的方法不能被复写
语法:
权限修饰符 final 返回值类型 方法名(参数列表){
方法体
}
类上
使用final来修饰的类是不可以被继承的
语法:
final
class 类名{
}
在类中所有的private方法都隐式的指向final,可以说private、final修饰的方法在此时的效果是相同的
使用final的原因
1、锁定
2、效率
详见《java编程思想》