• [编写高质量代码:改善java程序的151个建议]建议33:不要覆写静态方法


    覆写是针对非静态方法,不能针对静态方法。

    public class Base {
        public static void doSth() {
            System.out.println("Base:Sth");
        }
        public void doAnyth() {
            System.out.println("Base:Any");
        }
    }
     
    public class Sub extends Base {
        public static void doSth() {
            System.out.println("Sub:Sth");
        }
        public void doAnyth() {
            System.out.println("Sub:Any");
        }
    }
     
    public class Client {
        public static void main(String[] args) {
            Base base = new Sub();
            Sub sub = new Sub();
            base.doAnyth();
            base.doSth();
            Sub.doSth();
            sub.doAnyth();
            sub.doSth();
        }
    }
     
    ---
    Sub:Any
    Base:Sth
    Sub:Sth
    Sub:Any
    Sub:Sth
     
    非静态方法,是根据对象的实际类型来执行的。
    静态方法,如果是类调用,根据类名来选择方法,如果是对象调用,根据对象的实际类型来调用方法。
     
    in all,用对象调用静态方法、属性的习惯不是很好,给代码带来了"坏味道"。
  • 相关阅读:
    第十一周学习总结
    个人冲刺——(六)
    第二阶段冲刺—第二天
    软件工程第十四周总结
    第二阶段冲刺—第一天
    大道至简阅读笔记02
    输入法用户体验评价
    软件工程第十三周总结
    人机交互-水王
    大道至简阅读笔记01
  • 原文地址:https://www.cnblogs.com/akingseu/p/3464610.html
Copyright © 2020-2023  润新知