SCJP題庫第064題


class A {
  String name = "A";
  String getName() {
    return name;
  }
  String greeting(){
    return "class A";
  }
}
class B extends A {
  String name = "B";
  String greeting() {
    return "class B";
  }
}
__________________________________________
public class Client {
  public static void main( String[] args ) {
    A a = new A();
    A b = new B();
    System.out.println(a.greeting() + "has name" + a.getName());
    System.out.println(b.greeting() + "has name" + b.getName());
  }
}
Ans:

解說:
方法多形是說方法的決定是以物件為判斷的依據
b.getName()是叫用A型態的getName(因為B類別沒有getName),所以A型態的getName就是取得Aname,若在B加上getName結果就不一樣了!
class A {
  String name = "A";
  String getName() {
   return name;
  }
  String greeting(){
    return "class A";
  }
}
class B extends A {
  String name = "B";
  String getName() {
    return name;
  }
  String greeting() {
    return "class B";
  }
}
public class Client {
  public static void main( String[] args ) {
    A a = new A();
    A b = new B();
    System.out.println(a.greeting() + "has name" + a.getName());
    System.out.println(b.greeting() + "has name" + b.getName());
  }
}

Comments

Popular posts from this blog

Android+Google Map API v3 Geocoding(地址轉經緯度度