[18/12/01]super 关键字和final 关键字
2024-10-18 19:21:52
一、super 关键字
1、super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。
使用super调用普通方法,语句没有位置限制,可以在子类中随便调用。
代码示例:
class FatherClass //父类
{
public int value; public void f(){
value=100;
System.out.println("FatherClass.value= "+value);
}
} class ChildClass extends FatherClass //子类
{
public int value; public void f(){ //重写父类的f()方法
super.f();//调用父类对象的普通方法f() 用super
value=200;
System.out.println("ChlidClass.value="+value); System.out.println(value);//子类的 value
System.out.println(super.value);//父类的 value
}
} public class Test_1201_01
{
public static void main(String[] args)
{
new ChildClass().f(); } }
2、若是构造方法的第一行代码没有显式的调用super(...)或者this(...);那么Java默认都会调用super(),含义是调用父类的无参数构造方法。这里的super()可以省略。
代码示例:
//测试super 的第二个用途
//若是构造方法的第一行代码没有显式的调用super(...)或者this(...);那么Java默认都会调用super(),含义是调用父类的无参数构造方法
class FatherClass//父类
{
public FatherClass() //父类的无参构造方法
{
//supr(); 也有这句 会向上追溯 到Object类
System.out.println("父类的构造方法"); }
} class ChildClass extends FatherClass
{
public ChildClass()
{
// super(); 默认有这句,调用父类的构造方法
System.out.println("子类的构造方法");
}
} public class Test_1201_02
{
public static void main(String[] args)
{
new ChildClass(); //显然只是对子类创建个对象,但会输出2句。它调用了父类的无参构造方法 }
}
二、final关键字
1. 修饰变量: 被他修饰的变量不可改变。一旦赋了初值,就不能被重新赋值。 如: final
int
MAX_SPEED =
120
;
2. 修饰方法:该方法不可被子类重写。但是可以被重载! 如 : final
void
study(){}
3. 修饰类: 修饰的类不能被继承。比如:Math、String等。 如:final
class
A {}
final修饰方法如图所示。
final修饰类如图所示。
最新文章
- 修改ThinkSNS网站入口
- 嵌入式linux无线网卡的使用
- activity-intent-startActivity-startActivityResult
- PM俱乐部之旅7-弱活着
- JDK源码之AQS源码剖析
- HTTP 首部字段详细介绍
- 多线程中操作UI
- docker(一) Centos7下安装docker
- http(数据格式)、postman(数组、id、断言) 小知识必看啊
- jsp标签jstl和el表达式
- 优雅的重载toString方法,打印对象内容而不是打印内存地址的方法
- day28 classmethod 装饰器
- hdu 5443 (2015长春网赛G题 求区间最值)
- MySql随手记要
- 程序包org.junit不存在和编码GBK的不可映射字符问题解决
- 【大数据系列】hadoop集群设置官方文档翻译
- 【CF653G】Move by Prime 组合数
- BZOJ4553: [Tjoi2016&;Heoi2016]序列 树套树优化DP
- 对printf函数的理解1
- Dubbo通过注解实现RPC调用