您的位置:首页 > 编程语言 > Java开发

Java 中final关键字

2012-09-11 22:10 169 查看
简述:

研究Java 中final关键字的一些特性

知识点:

1. final 关键字修饰的变量在声明的时候就要赋值, 且不能再做修改,类似C++中的const

2. final 方法不能再子类中重写

代码:

Person.java

package test._final_;

public abstract class Person {
//final 关键字修饰的变量在声明的时候就要赋值
protected final int age = 10;

//final 方法不能再子类中重写
public final void Born(){
System.out.println("I'm born.");
}

public void Eat(){
System.out.println("I'm eating");
}

abstract void ShowAge();

}


Student.java

package test._final_;

public class Student extends Person{
@Override
public void Eat(){
System.out.println("Student is eating.");
}

/*
* Person中Final关键字,使得子类Student,不能重写Born方法
*
@Override
public void Born(){
System.out.println("Student is eating.");
}
*
*/

public void Study() {
System.out.println("Student is studying.");
}

//实现基类中的abstract方法ShowAge
@Override
void ShowAge() {
//age 一旦申明,在子类终究不能修改,下面这句报错了
//		age += 7;  //报错
System.out.println("my age: " + age);
}
}


Test.java

package test._final_;

public class Test {
public static void main(String[] args){
Student student = new Student();
//基类Person中的final发法
System.out.println("基类Person中的final发法: ");
student.Born();

//在子类中实现的Person中的abstract方法
System.out.println("\n在子类中实现的abstract方法");
student.Study();

//无法再子类中修改,基类中final修饰的变量的值
System.out.println("\n无法再子类中修改,基类中final修饰的变量的值: ");
student.ShowAge();
}
}


输出:


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: