zoukankan      html  css  js  c++  java
  • 继承语法含有main()方法

    package me.ybleeho;
    
    class Cleanser{        //清洁剂
        private String s="Cleanser";
        public void append(String a){s+=a;}
        public void dilute(){append("dilute");}        //稀释
        public void apply(){append("apply()");}        //应用
        public void scrub(){append("scrub()");}        //洗擦
        public String toSting(){return s;}
        public static void main(String[] args){
            Cleanser x=new Cleanser();
            x.dilute();x.apply();x.scrub();
            System.out.println(x.toSting());
        }
    }
    
    public class Detergent extends Cleanser{    //清洁剂
        public void scrub(){
            append("Detergent.scrub()");
            super.scrub(); //Call base-class version
        }
        //Add methods to the interface:
        public void foam(){append("foam()");}
        //Test the new class:
        public static void main(String[] args){
            Detergent x=new Detergent();
            x.dilute();x.apply();x.scrub();x.foam();
            System.out.println(x.toSting());
            System.out.println("Testing base class:");
            Cleanser.main(args);
        }
    }

    输出结果:

    Cleanserdiluteapply()Detergent.scrub()scrub()foam()
    Testing base class:
    Cleanserdiluteapply()scrub()

    Cleanser和Detergent均含有main()方法。可以为每个类创建一个main()方法。这种在每个类中都设置一个main()方法的技术可使每个类的单元测试都变得简便易行。而且在完成单元测试之后,也无需删除main(),可以将其留待下次测试。

    即使是一个程序中含有多个类,也只有命令行所调用的那个类的main()方法会被调用。因此,在此例中,如果命令行是java Detergent,那么Cleanser.main()仍然会被调用。即使一个类中只具有包访问权限,其public main()仍然是可访问的。

    在此例中,可以看到Detergent.main()明确调用了Cleanser.main(),并将从命令行获取的参数传递给了它。当然,也可以向其传递任意的String数组。

  • 相关阅读:
    微软TechEd2013大会门票热卖!
    2013年国庆节前51Aspx源码发布详情
    2013年9月份第2周51Aspx源码发布详情
    微软TechEd2013大会将在北京、上海召开!
    2013年9月份第1周51Aspx源码发布详情
    2013年8月份第4周51Aspx源码发布详情
    设置快速导航
    Web Service超限
    深入浅出SharePoint2013——使用沙箱解决方案
    深入浅出SharePoint2013——常用术语
  • 原文地址:https://www.cnblogs.com/ybleeho/p/6104016.html
Copyright © 2011-2022 走看看