走上开放之路: .NET 开发人员的 J2EE 基础(上) - 编程入门网
ava 语言中,默认的访问权限是允许任何子类或相同包中的任何类访问当前类、字段或方法。这大致等价于 Visual Basic .NET 中的 Protected Friend 修饰符,该修饰符仅允许从相同程序集或从子类访问。
方法重载 Visual Basic .NET 中的子类如果要重载父内中的某个方法: 该方法一定 不 能在父类中使用 private 访问修饰符来声明。 该方法必须在父类中声明为 Overridable 。 子类中的方法必须与父类中的对应方法具有相同的名称、返回类型和参数签名。 子类中的方法必须使用 Overrides 关键字来声明。(您也可以使用 new 关键字,但是一般不推荐这样做。) 父类中的方法一定 不 能声明为 NotOverridable 。 Java 语言中方法重载的前提条件不太严格: 该方法一定 不 能在父类中使用 private 访问修饰符来声明。 子类中的方法必须与父类中的对应方法具有相同的名称、返回类型和参数签名。 父类中的方法一定 不 能声明为 final 。 这些区别的含义是,在 Java 代码中,子类中不可能包含与父类中的非私有方法具有相同名称和签名的方法而不会隐含地重载它。在 Visual Basic .NET 中,您必须显式地指明何时想要重载父类中的方法。还要注意,Java 语言中的 final 关键字或多或少地等价于 Visual Basic .NET 中的 NotOverridable 关键字。 异常处理 结构化的异常处理在两种语言中几乎完全相同。(两者都可以往后追溯到一份创始性的论文,即 Andrew Koenig 和 Bjarne Stroustrup 于 1990 年撰写的 Exception Handling for C++。) 两种语言都使用两种异常概念:应用程序生成的异常,以及系统运行库(Visual Basic .NET 的公共语言运行库,Java 语言的 JVM)生成的异常。 两种语言都具有 Exception 基类,应用程序异常和系统异常都是由它派生而来的。图 2 显示了每种语言中的 Exception 类层次。 图2. Java 语言和 Visual Basic .NET 中的 Exception 类 走上开放之路: .NET 开发人员的 J2EE 基础(上)(8)时间:2011-03-11 IBM David Carew然而,两种语言的编译器对您的代码如何处理异常具有不同的预期。在 Visual Basic .NET 中,您可以选择捕获异常,或让它们沿调用堆栈向上传播到类的方法的调用者(和/或构造函数)。Java 语言允许同样的处理,但是对于未捕获的应用程序异常(也就是 java.lang.Exception 的子类),您必须显式地将它们作为方法声明的一部分来列出。因此 Java 编译器预期您或者自己捕获所有应用程序异常,或者告诉编译器关于未捕获的异常的信息。例如,假设 Foo 类的构造函数可能抛出一个应用程序异常,那么清单 6 中的 Visual Basic .NET 或 Java 代码对各自的编译器来说都不会有问题。 清单 6. 处理应用程序异常
然而,如果改变代码以使其不捕获异常,那么您就必须改变 Java 方法声明(如清单 7 所示)以避免编译器错误。 清单 7. 未捕获的应用程序异常
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |