听雨轩

不论你在什么时候开始,重要的是开始之后就不要停止。 不论你在什么时候结束,重要的是结束之后就不要悔恨。

统计

留言簿(3)

阅读排行榜

评论排行榜

clone方法、继承、抽象方法、编译时的多态性和运行时的多态性

使用对象克隆时要注意,首先要检查该对象是否可以克隆,即该对象是否实现了 Cloneable 接口,如果该对象实现了这个接口,则该对象可以被克隆,否则将抛出一个 CloneNotSupportException 。

Object 类中有一个 clone ()方法,但是该类没有实现 Cloneable 接口,所以如果一个 Object 对象直接使用 clone ()方法,将会抛出异常。 Object 的子类如果希望实现克隆,需要实现 Cloneable 接口。在实现接口中的 clone ()方法时,可以直接调用 Object 中的克隆方法,即使用 super.clone ()语句。

在类的继承中,如果子类中的变量或方法覆盖了父类中的变量或方法,其父类的变量和方法还是存在于内存中的,在子类中可以使用 super 关键字进行访问。

Java 中,用 abstract 关键字修饰不能在类内实现的方法,这样的方法称为抽象方法,含有抽象方法的类也必须声明为 abstract ,这样的类叫做抽象类。抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要声明为抽象类。抽象类本身不具备实际的功能,只能用于派生子类,而定义为抽象的方法必须在子类派生时重载。如果一个类被定义为抽象类,则该类不能进行实例化,必须通过重载的方式来实现抽象类中的方法。

编译时多态 是通过方法的重载来实现的:即用相同的名字在类中定义不同的方法,根据参数的个数、类型和返回值类型来加以区分。而运行时多态是通过类继承的方法重写实现的:子类对象可以作为父类对象来使用,因为子类通过继承具备了父类的所有属性,在程序中凡是可以使用父类对象的地方,都可以使用子类对象来代替。对于重写的方法, Java 会根据调用该方法的实例的类型来决定选择哪个方法。对子类的实例,如果子类重写了父类的方法,则运行时系统调用子类的方法,如果子类没有重写该方法,则调用父类的方法。因此,一个父类对象可以通过引用子类的实例来调用子类的方法。

 

posted on 2006-10-01 14:30 Winnie 阅读(1626) 评论(0)  编辑  收藏 所属分类: java基础知识