final修饰类,方法,基本类型变量,引用的时候分别有不同的意思。
步骤1:final修饰类
步骤2:final修饰方法
步骤3:final修饰基本类型变量
步骤4:final修饰引用
步骤5:常量
步骤6:练习-final
步骤7:答案-final
示例 1 : final修饰类
当Hero被修饰成final的时候,表示Hero不能够被继承
其子类会出现编译错误
package charactor;
public final class Hero extends Object {
String name; //姓名
float hp; //血量
}
|
示例 2 : final修饰方法
Hero的useItem方法被修饰成final,那么该方法在ADHero中,不能够被重写
package charactor;
import property.Item;
public class Hero extends Object {
String name; //姓名
float hp; //血量
float armor; //护甲
int moveSpeed; //移动速度
public final void useItem(Item i){
System.out.println( "hero use item" );
i.effect();
}
public Hero(){
System.out.println( "Hero的无参的构造方法 " );
}
public Hero(String name){
System.out.println( "Hero的有一个参数的构造方法 " );
this .name = name;
}
public static void main(String[] args) {
new Hero();
}
}
|
示例 3 : final修饰基本类型变量
final修饰基本类型变量,表示该变量只有一次赋值机会
16行进行了赋值,17行就不可以再进行赋值了
package charactor;
public class Hero extends Object {
String name; //姓名
float hp; //血量
float armor; //护甲
int moveSpeed; //移动速度
public static void main(String[] args) {
final int hp;
hp = 5 ;
hp = 6 ;
}
}
|
示例 4 : final修饰引用
final修饰引用
h引用被修饰成final,表示该引用只有1次指向对象的机会
所以17行会出现编译错误
但是,依然通过h引用修改对象的属性值hp,因为hp并没有final修饰
package charactor;
public class Hero extends Object {
String name; //姓名
float hp; //血量
float armor; //护甲
int moveSpeed; //移动速度
public static void main(String[] args) {
final Hero h;
h = new Hero();
h = new Hero();
h.hp = 5 ;
}
}
|
示例 5 : 常量
常量指的是可以公开,直接访问,不会变化的值
比如 itemTotalNumber 物品栏的数量是6个
package charactor;
public class Hero extends Object {
public static final int itemTotalNumber = 6 ; //物品栏的数量
String name; //姓名
float hp; //血量
float armor; //护甲
int moveSpeed; //移动速度
public static void main(String[] args) {
final Hero h;
h = new Hero();
h.hp = 5 ;
}
}
|
更多内容,点击了解: https://how2j.cn/k/interface-inheritance/interface-inheritance-final/313.html