Java——final关键字

final 这个关键字可以修饰类、属性和方法,被 final 修饰的类是一个终结的类,不能被继承;被 final 修饰的属性就变为常量;被 final 修饰的方法不能被重写

1.修饰类

final class Father {
    public String name;
    public void show() {
        System.out.println(name);
    }
}
class Son extends Father {

}

由于 Father 类被 final 关键字修饰,所以其他类就不能再继承 Father 类了

被 final 修饰的类,不能有子类,也就是不能被继承

2.修饰属性

被 final 修饰的属性叫常量,通常会与 static 关键字一起使用,因为常量是不可改变的,既然不可改变,我们只需要在内存中只保留一份即可

class Father {
    public static final String COUNTRY = "中国";
    public String name;
    public void show() {
        System.out.println(name + "," + Father.COUNTRY);
    }
}

定义常量的赋值方式:

1.在定义常量时赋值

class Father {
    public final String COUNTRY = "中国";
}

2.在构造方法中赋值

class Father {
    public final String COUNTRY;
    public Father() {
        COUNTRY = "中国";
    }
}

3.在静态代码块里赋值

class Father {
    public static final String COUNTRY;
    //静态代码块
    static {
        COUNTRY = "中国";
    }
}

3.修饰方法

被 final 修饰的方法不能重写

4.重写

当父类和子类中有相同的方法时,就称为重写

class Father {
    public String name;
    public void show() {
        System.out.println(name);
    }
}
class Son extends Father {
    public void show() {
        System.out.println("Son 中的 show()。。。。");
    }
}
public class FinalDemo1 {
    public static void main(String[] args) {
        Son son = new Son();
        son.show();
    }
}

在上面的代码中,父类 Father 和子类 Son 类中都有 show 方法,当我们调用 show 方法时,输出的是子类 Son 中的 show 方法 ,如果子类中没有 show 方法,则输出父类中的 show 方法

重写的特点:1.方法名称必须相同

                      2.方法的参数列表必须相同

                      3.子类方法的访问修饰符必须大于或等于父类方法的访问修饰符(private < protected < public)

                      4.子类方法的返回值类型要么是父类方法的返回值类型,要么是父类方法返回值类型的子类

                      5.父类方法如果没有抛出异常,子类方法一定不能抛出异常,如果父类方法抛出了异常,那么子类方法可以不抛出异常,也可以抛出父类异常或其子类

                      6.发生在子父类中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值