目录
- 第一卷
- 第二卷
这个University的新的子类继承了它的超类的成员函数samecity。但这个成员函数samecity判断的是两个城市的名字,这是不够的,因为有可能两个两个名字一样的城市属于不同的国家,我们要用同时判断城市和国家的成员函数来覆盖它。下面就是实现覆盖的例子。
classUniversity{
Stringname,city;
University(Stringname,Stringcity){
this.name=name;
this.city=city;
}
booleansamecity(Stringcity){
if(city.equals(this.city))return true;
else return false;
}boolean
samecity(Universityu){
returnsamecity(u.city);
}
}
classUniversityWorldextendsUniversity{
Stringcountry;
UniversityWorld(Stringname,Stringcity,Stringcountry){
super(name,city);
this.country=country;
}
booleansamecity(Stringcity,Stringcountry){
if(city.equals(u.city)&&country.equals(u.country))
return true;
else return false;
}
booleansamecity(UniversityWorldother){
returndistance(other.city,other.country);
}
}
classUniversityWorldCity{
publicstaticvoidmain(Stringargs[]){
Stringcity=上海;
Stringcountry=中国;
UniversityWorldu1=new UniversityWorld(北?copy;大学,北?copy;,中国);
UniversityWorldu2=new UniversityWorld(清华大学,北?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