开发测试学习
目录

这个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