java名字的埋没
当前位置:以往代写 > JAVA 教程 >java名字的埋没
2019-06-14

java名字的埋没

java名字的埋没

只有C++措施员大概才会惊奇于名字的埋没,因为它的事情道理与在C++里是完全差异的。假如Java基本类有一个要领名被“过载”利用多次,在衍生类里对谁人要领名的从头界说就不会埋没任何基本类的版本。所以无论要领在这一级照旧在一个基本类中界说,过载城市生效:
 

//: Hide.java
// Overloading a base-class method name
// in a derived class does not hide the
// base-class versions

class Homer {
  char doh(char c) {
    System.out.println("doh(char)");
    return 'd';
  }
  float doh(float f) {
    System.out.println("doh(float)");
    return 1.0f;
  }
}

class Milhouse {}

class Bart extends Homer {
  void doh(Milhouse m) {}
}

class Hide {
  public static void main(String[] args) {
    Bart b = new Bart();
    b.doh(1); // doh(float) used
    b.doh('x');
    b.doh(1.0f);
    b.doh(new Milhouse());
  }
} ///:~

正如下一章会讲到的那样,很少会用与基本类里完全一致的签名和返回范例来包围同名的要领,不然会使人感想疑惑(这正是C++不答允那样做的原因,所以可以或许防备发生一些不须要的错误)。

    关键字:

在线提交作业