• final修饰符(5)-final方法


      final修饰的类的方法不能被重写,例如如果父类不希望子类重写某个方法,则可以使用final修饰符修饰该方法

      在java的Object类里面有一个final方法:getClass(),因为Java不希望任何类重写这个方法,所有使用final方法封装起来,但对于该类提供的toString()和equals()方法,都允许子类重写,因此都没有用final修饰

    代码示例:

    package com.j1803.finalTest;
    public class FinalMethodTest1 extends Test{
        //编译错误
        public void show(){};
        public static void main(String[] args) {
        }
    }
    class Test{
        public final void show(){};
    }

      子类试图重写父类的final方法,编译错误

      对于一个private修饰的父类方法,因为其仅在当前类中可见,其子类无法访问该方法,所以子类无法重写该方法,如果在子类中定义了一个与父类private方法有相同方法名,参数列表相同,返回值相同的方法,

    也不是重写,只是定义了一个新方法,因此,即使使用final修饰一个private访问权限的方法,依然可以在其子类中定义与该方法具有相同方法名,相同参数列表,相同返回值类型的方法

    package com.j1803.finalTest;

    public class FinalMethodTest1 extends Test{
        //编译错误
        public void show(){};
        public static void main(String[] args) {
            // TODO Auto-generated method stub
        }
    }
    class Test{
        //修改public 为private
        private final void show(){};
    }

      final修饰的方法仅仅是不能被重写,并不是不能被重载

    package com.j1803.finalTest;
    public class FinalMethodTest1{
        public final void show(){};
        public final void show(Object obj){};
        public static void main(String[] args) {
        }

    }

  • 相关阅读:
    vue+vant打包,vue+vant-ui小程序,微信支付
    vue+vant-ui移动端适配 宽高
    web前端面试题
    vue面试题及答案(1)
    vue的增删改查(简单版)
    Vue computed计算属性
    vue.cli的安装配置
    Create React App 安装时出现的错误解决方法
    运行node文件的多种方式
    怎么把node配置成全局打开
  • 原文地址:https://www.cnblogs.com/shadow-shine/p/9614072.html
Copyright © 2020-2023  润新知