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,用对象调用静态方法、属性的习惯不是很好,给代码带来了"坏味道"。
  • 相关阅读:
    前端基础之BOM和DOM
    前端基础之JavaScript
    前端基础之CSS
    Black And White HDU
    Robot Motion HDU
    A Knight's Journey POJ
    Find a way HDU
    排序 HDU
    Dungeon Master POJ
    Network Saboteur POJ
  • 原文地址:https://www.cnblogs.com/akingseu/p/3464610.html
Copyright © 2011-2022 走看看