zoukankan      html  css  js  c++  java
  • [编写高质量代码:改善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,用对象调用静态方法、属性的习惯不是很好,给代码带来了"坏味道"。
  • 相关阅读:
    一、异常
    自控力_第三章
    Vocabulary Recitation 2020/05/05
    Vocabulary Recitation 2020/05/04
    Vocabulary Recitaion 2020/05/03
    Vocabulary Recitation 2020/05/01
    最大子序列和
    Vocabulary Recitation 2020/04/29
    自控力_第二章
    Vocabulary Recitation 2020/04/27
  • 原文地址:https://www.cnblogs.com/akingseu/p/3464610.html
Copyright © 2011-2022 走看看