(31) Java不提供多重继承机制(MI),至少不象C那样做。
与protected类,MI表面上是一个很不错的主意,但只有真正面对一个特定的设计问题时,才知道自己需要它。由于Java使用的是“单根”分级结构,所以只有在极少的场合才需要用到MI。interface关键字会帮助我们自动完成多个接口的合并工作。
c支持多重继承,这是c的一个特征,它允许多父类派生一个类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容 易。Java不支持多重继承,但允许一个类继承多个接口(extendsimplement),实现了c多重继承的功能,又避免了c中的多重继 承实现方式带来的诸多不便。
所谓的interface基本上定义了一个类的对外沟通的方法原型,以及类内部的常数,和多重继承不同之处在于interface并不会定义类方法的内容,以及类中的变量数据。
(32) 运行期的类型标识功能与C极为相。
例如,为获得与句柄X有关的信息,可使用下述代码:
X.getClass().getName();
为进行一个“类型安全”的紧缩造型,可使用:derived d = (derived)base;
这与旧式风的C造型是一样的。编译器会自动调用动态造型机制,不要求使用额外的语法。尽管它并不象C的“new casts”那样具有易于定位造型的优点,但Java会检查使用情况,并丢弃那些“异常”,所以它不会象C那样允许坏造型的存在。
(33) Java采取了不同的异常控制机制,因为此时已经不存在构建器。
可添加一个finally从句,强制执行特定的语句,以便进行必要的清除工作。Java中的所有异常都是从基础类Throwable里继承而来的,所以可确保我们得到的是一个通用接口。
public void f(Obj b) throws IOException
{
myresource mr = b.createResource();
try
{
mr.UseResource();
} catch(MyException e)
{ handle my exception
![]()
}
catch(Throwable e)
{
handle all other exceptions
}
finally{ mr.dispose(); special cleanup }
}
(34) Java的异常规范比C的出色得多。
JAVA中的异常机制用于捕获例外事件,增强系统容错能力
如代码所示:
try
{
可能产生例外的代码
} catch(exceptionType name)
其中exceptionType表示异常类型。
{ 处理 }
而C则没有如此方便的机制。
java丢弃一个错误的异常后,不是象C那样在运行期间调用一个函数,Java异常规范是在编译期间检查并执行的。除此以外,被取代的方法必须遵守那 一方法的基础类版本的异常规范:它们可丢弃指定的异常或者从那些异常衍生出来的其他异常。这样一来,我们最终得到的是更为“健壮”的异常控制代码。
(35) Java具有方法重载的能力,但不允许运算符(操作符)重新载OperatorOverloading
String类不能用和=运算符连接不同的字串,而且String表达式使用自动的类型转换,但那是一种特殊的内建情况。(备注:在c中的string是小写的)
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/sanxing/article-58491-11.html
我们可不可以把质监局这种做错事不道歉
和统一国两制