下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

如何正确的隐藏java语言中的名字

作者:课课家教育     来源: http://www.kokojia.com点击数:810发布时间: 2016-02-18 15:46:28

标签: java编程java基础类object-C

大神带你学编程,欢迎选课

  只有C++程序员可能才会惊讶于名字的隐藏,因为它的工作原理与在C++里是完全不同的。如果java基础类有一个方法名被“过载”使用多次,在衍生类里对那个方法名的重新定义就不会隐藏任何基础类的版本。所以无论方法在这一级还是在一个基础类中定义,过载都会生效:

如何正确的隐藏java语言中的名字_java编程_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());

 

  }

 

  } ///:~

 

  正如如何正确确保的清楚java对象那篇文章讲到的那样,很少会用与基础类里完全一致的签名和返回类型来覆盖同名的方法,否则会使人感到迷惑(这正是C++不允许那样做的原因,所以能够防止产生一些不必要的错误)。

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程