5.12成员函数的覆盖
这个University的新的子类继承了它的超类的成员函数samecity。但这个成员函数samecity判断的是两个城市的名字,这是不够的,因为有可能两个两个名字一样的城市属于不同的国家,我们要用同时判断城市和国家的成员函数来覆盖它。下面就是实现覆盖的例子。
classUniversity{Stringname,city;University(Stringname,Stringcity)
{this.name=name;this.city=city;}booleansamecity(Stringcity){if
(city.equals(this.city))returntrue;elsereturnfalse;}boolean
samecity(Universityu){returnsamecity(u.city);}}
classUniversityWorldextendsUniversity{Stringcountry;
UniversityWorld(Stringname,Stringcity,Stringcountry){super(name,
city);this.country=country;}booleansamecity(Stringcity,String
country){if(city.equals(u.city)&&country.equals(u.country))return
true;elsereturnfalse;}booleansamecity(UniversityWorldother)
{returndistance(other.city,other.country);}}
classUniversityWorldCity{publicstaticvoidmain(Stringargs[])
{Stringcity=\"上海\";Stringcountry=\"中国\";UniversityWorldu1=
newUniversityWorld(\"北?copy;大学\",\"北?copy;\",\"中国\");
UniversityWorldu2=newUniversityWorld(\"清华大学\",\"北?copy;\",\"
中国\");System.out.println(\"u1=\"+u1.name+\",\"+u1.city+\",\"+
u1.country);System.out.println(\"u2=\"+u2.name+\",\"+u2.city+\",
\"+u2.country);System.out.println(\"city=\"+city+\",country=\"+
country);System.out.println(\"u1.samecity(u2)=\"+u1.samecity(u2));
System.out.println(\"u1.samecity(city,country)=\"+u1.samecity(city,
country));}}
下面是输出结果。
C:\\>javaUniversityWorldCityu1=北?copy;大学,北?copy;,中国u2=清华大学,北?copy;,中国city=上海,country=中国u1.samecity(u2)=trueu1.samecity(city,country)=false
5.13动态成员函数发送
2015年全国职称计算机考试教材(2007模 .. 定价:¥225 优惠价:¥213 更多书籍 | |
全国职称计算机考试速成过关系列套装:W .. 定价:¥133 优惠价:¥133.0 更多书籍 |