美文网首页Java自学
Java自学-接口与继承 final

Java自学-接口与继承 final

作者: Wester西人 | 来源:发表于2019-09-25 06:46 被阅读0次

Java的修饰符final

final修饰类,方法,基本类型变量,引用的时候分别有不同的意思。

示例 1 : final修饰类

当Hero被修饰成final的时候,表示Hero不能够被继承
其子类会出现编译错误


final修饰类
    package charactor;
     
    public final class Hero extends Object {
            
        String name; //姓名
            
        float hp; //血量
            
    }

示例 2 : final修饰方法

Hero的useItem方法被修饰成final,那么该方法在ADHero中,不能够被重写


final修饰方法
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;
         
    }
      
}

练习Java的修饰符final

设计一个类SomeString,继承 String类。 能否继承?

答案

不能继承,因为String类是final修饰的不能被继承。

相关文章

  • Java自学-接口与继承 final

    Java的修饰符final final修饰类,方法,基本类型变量,引用的时候分别有不同的意思。 示例 1 : fi...

  • Java自学-接口与继承 接口

    设计Java的接口 在设计LOL的时候,进攻类英雄有两种,一种是进行物理系攻击,一种是进行魔法系攻击 这时候,就可...

  • Java自学-接口与继承 重写

    Java 重写方法 子类可以继承父类的对象方法 在继承后,重复提供该方法,就叫做方法的重写 又叫覆盖 Overri...

  • Java自学-接口与继承 隐藏

    Java中的方法隐藏 与重写类似,方法的重写是子类覆盖父类的对象方法 隐藏,就是子类覆盖父类的类方法 步骤 1 :...

  • Java自学-接口与继承 super

    Java的super关键字 步骤 1 : 准备一个显式提供无参构造方法的父类 准备显式提供无参构造方法的父类在实例...

  • Java自学-接口与继承 多态

    Java的多态 操作符的多态+可以作为算数运算,也可以作为字符串连接 类的多态父类引用指向子类对象 示例 1 : ...

  • String

    1.定义 final类,不可被继承 实现java.io.Serializable接口,可被序列化 实现Compar...

  • Java笔记

    Java基础 Java面试通关要点 1.面向对象的特征 封装 继承 多态 封装继承多态 2.final,final...

  • Java自学-接口与继承 UML图

    UML 图 步骤 1 : UML 图 —— 类之间的关系 UML-Unified Module Language统...

  • Java自学-接口与继承 默认方法

    默认方法 步骤 1 : 什么是默认方法 默认方法是JDK8新特性,指的是接口也可以提供具体方法了,而不像以前,只能...

网友评论

    本文标题:Java自学-接口与继承 final

    本文链接:https://www.haomeiwen.com/subject/jwphuctx.html