public class overloading t static Test monitor =new Test ( public static void main(String[] args)i for (int t info oi / Over loaded constructor new Tree( monitor. expect (new String[] t Tree is o feet tall" overloaded method: Tree is o feet tall "Creating new Tree that is 1 feet tall", "Tree is 1 feet tall", overloaded method Tree is 1 feet tall# "Creating new Tree that is 2 feet tall", Tree feet tall overloaded method: Tree is 2 feet tall "Creating new Tree that is 3 feet tall" 3 feet tall" overloaded method: Tree is 3 feet tall" Creating new Tree that is 4 feet tall "Tree is 4 feet tall", overloaded method: Tree is 4 feet tall", Planting a seedling }///: 创建Tree对象的时候,既可以不用参数,也可以用一个表示高度的int 当参数。前者表示它还是一棵树苗,后者表示它已经成材了。为了能提供 这种功能,程序得有一个默认的构造函数,以及一个需要拿现有高度作参 数的构造函数 或许你还想多要几种调用info()的方法。比如,想多打印些东西的时 候,你可以用info( String),什么都不想说的时候,可以用info() 同一种概念要用两个名字,那肯定会很怪。所幸的是,有了方法重载,你 就可以让这两者使用同一个名字。 区分经重载的方法 如果方法的名字相同,那么Java又该如何判断你要用哪个方法的呢?有 个很简单的规则:每一个经过重载的方法都必须有唯一的参数类型的列 表 只要稍微想一下,你就会发现这是最合情理的办法。如果不是用参数的类 型,程序员又怎么来区分两个有着相同名字的方法呢? 第6页共42页
shhgs@wgqqh.com 6 ✁ ✂ 42 ✁ public class Overloading { static Test monitor = new Test(); public static void main(String[] args) { for(int i = 0; i < 5; i++) { Tree t = new Tree(i); t.info(); t.info("overloaded method"); } // Overloaded constructor: new Tree(); monitor.expect(new String[] { "Creating new Tree that is 0 feet tall", "Tree is 0 feet tall", "overloaded method: Tree is 0 feet tall", "Creating new Tree that is 1 feet tall", "Tree is 1 feet tall", "overloaded method: Tree is 1 feet tall", "Creating new Tree that is 2 feet tall", "Tree is 2 feet tall", "overloaded method: Tree is 2 feet tall", "Creating new Tree that is 3 feet tall", "Tree is 3 feet tall", "overloaded method: Tree is 3 feet tall", "Creating new Tree that is 4 feet tall", "Tree is 4 feet tall", "overloaded method: Tree is 4 feet tall", "Planting a seedling" }); } } ///:~ LM Tree ¥K(MsÝEXI[ÝE3×^z( int I^A3ר^AôõÙ,,;de Ú;â'm3×ÒÙ(GÚHIEh3×î%ímz1 I(GÚHI ²Û¡|V%iN info( )(µ8Ä|V]ÈÌÜÝ( M¡ÝE info(String)ZÆX|$(MÝE info( ) 3ÖJ%e×Ñ\YÞOºßD_(m,µ«¡ ÝEÇ eç3×Ñ\ Äŵ(Ñ\>YZ Java üwÄÀÁ¡%r×µ(ÎÊ m 3×uv(ày[3×õ^«(µÆpqmË3(I(á ó%â¬|3k¡ºìí bw5¢(ÍÄÅXI( â')üÕZQe×m.>Ñ\(µÎÊ