继承语法含有main()方法

Posted 以后文章更新在https://ybleeho.github.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了继承语法含有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数组。

 

以上是关于继承语法含有main()方法的主要内容,如果未能解决你的问题,请参考以下文章

java复用类知识

代码逻辑题之继承-静态代码块-main方法执行顺序

Java基础01—语法结构与基本数据类型

Java基础01—语法结构与基本数据类型

Java中的main方法

《Android源码设计模式》--工厂方法模式