【发布时间】:2020-02-22 06:27:14
【问题描述】:
我的老师遇到了一些麻烦,我们必须在大约一个月内掌握java的概念,他说以下是可能的:
所以在Java中每个类都继承自Object类,这个类为我们提供了protected Object clone()之类的方法,例如:现在假设我们有class Car
// 稍后在 main:
Car mycar=new Car();
//he is saying now that following is possible:
Car yourCar=(Car) mycar.clone();
但是网上的每一篇文章都说这是不可能的,即使我尝试编译它也是不可能的,首先是因为该方法是受保护的,其次是因为它会抛出一个异常
有什么我想念的吗?
【问题讨论】:
-
您没有发布课程
Car;它会用public签名覆盖clone()吗? -
docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone-- "首先,如果该对象的类没有实现接口Cloneable,则抛出CloneNotSupportedException"。请显示
Car的定义 -
不,他没有覆盖它,这就是我如此困惑的原因
-
如果他没有覆盖
Car类中的clone()方法,那么这是不可能的,你会收到这些错误。 -
这很简单:如果
Car实现Cloneable你的老师是正确的,如果不是你就会有例外并且你的老师是错误的。告诉他,Stackoverflow 是这么说的 :)