关于java继承的一个问题

问题描述

java的Object对象有个clone方法,这个方法的修饰符是protected,如果我设计一个Class去继承Object,要使用这个clone一定要实现一个Cloneable的接口,这是为什么,我原本以为继承的protected方法就能直接用了?

解决方案

Cloneable的接口是标记接口...不是你不能访问,是访问的时候如果没有标记它是Cloneable的会抛一个异常。
解决方案二:
首先,这个问题与修饰符无关!楼主可以去看看JDK API 1.6.0,里面有对Object类的clone方法的具体描述Object 类的 clone 方法执行特定的复制操作。首先,如果此对象的类不能实现接口 Cloneable,则会抛出 CloneNotSupportedException。注意,所有的数组都被视为实现接口 Cloneable。否则,此方法会创建此对象的类的一个新实例,并像通过分配那样,严格使用此对象相应字段的内容初始化该对象的所有字段;这些字段的内容没有被自我复制。所以,此方法执行的是该对象的“浅表复制”,而不“深层复制”操作。 Object 类本身不实现接口 Cloneable,所以在类为 Object 的对象上调用 clone 方法将会导致在运行时抛出异常。
解决方案三:
。。。。。。public 都可以被继承或访问;protected在同一包,他的子类都可以去继承或访问;default,在同一包中可以被继承或访问,子类如果和父类不在一个包,也不能继承;private,必须在一个类中才能被访问。

时间: 2024-10-24 16:51:40

关于java继承的一个问题的相关文章

java 继承-一个java继承中碰到的菜鸟问题

问题描述 一个java继承中碰到的菜鸟问题 public class Parent { public String a; public String b; public Parent getA(){ System.out.println("PPPPPPPPP"); return this; } public void Test(){ System.out.println(getA().a); System.out.println(getA().b); } } public class

java-新人学习JAVA,关于继承的一个问题

问题描述 新人学习JAVA,关于继承的一个问题 老师布置了一个作业,具体要求如下: 先创建一个flight对象(这个对象只有一个属性,就是航班号) 然后根据用户的输入, 判断这个flight对象 是pflight(个人航班,有两个属性,分别是航班号和个人的名字,航班号继承之前创建flight对象的属性,需要用户个人的名字) 还是gflight(群体航班,分别是航班号和群里数量,航班号继承之前创建flight对象的属性,需要用户输入补充群体的数量), 请问该如何实现?(需要在一个单独的CLASS里

使用Java Swing 创建一个XML编辑器

xml|创建 我想您一定对XML有所了解,说不定您现在还跃跃欲试想写一段XML文本呢,可是现在能找到的跨平台的.免费的XML编辑器太少了.所以在本文中,我想介绍一下或者说带您一步一步的开发一个简单的XML编辑器,当然我们要用到一些最常见的Java 2 Swing组件,不过这些都是免费的,有些是JDK中的,有些是可以从网上下载的.我想通过本文,你就可以创建一个属于你自己的XML编辑器. 先让我介绍一下本文辑写的思路.首先我想简要的讨论一下XML和为什么树型结构比较适合用来显示XML,然后我们来看一

用继承建立一个继承类

"Inherits"关键字可以用在使一个类继承另一个类的属性.方法.事件等等,所有的类缺省的都是可以继承的,除非被设置为"NoInheritable"关键字. 下面这个例子定义了两个类,第一个类是一个基础类,并且含有一个属性和两个方法,第二个类从第一个类继承了这个属性和两个方法,重载了第二个方法,并且定义了一个新的属性"intProp2". Class Class1 Private intProp1 as Integer Sub Method1(

使用Java Swing创建一个XML编辑器

我想您一定对XML有所了解,说不定您现在还跃跃欲试想写一段XML文本呢,可是现在能找到的跨平台的.免费的XML编辑器太少了.所以在本文中,我想介绍一下或者说带您一步一步的开发一个简单的XML编辑器,当然我们要用到一些最常见的Java 2 Swing组件,不过这些都是免费的,有些是JDK中的,有些是可以从网上下载的.我想通过本文,你就可以创建一个属于你自己的XML编辑器. 先让我介绍一下本文辑写的思路.首先我想简要的讨论一下XML和为什么树型结构比较适合用来显示XML,然后我们来看一看JAXP A

java继承-关于Java继承的问题,方法的调用

问题描述 关于Java继承的问题,方法的调用 在下面这个程序中, class Person{ private void print(){ System.out.println("Person>void print"); } public void fun(){ this.print(); } }; class Student extends Person{ void print(){ System.out.println(" Student >void print

java继承-JAVA抽象类(新手求解)

问题描述 JAVA抽象类(新手求解) 子类继承了一个抽象类,抽象类中没有无参构造函数,有有参构造.请问子类能实例化么?如果能,怎么做? 解决方案 子类构造方法中使用super()传参,指定一个父类的构造器 假如父类构造器是private修饰的那就没办法继承了. 解决方案二: 能,可以直接使用无参,也可以使用父类的有参构造 解决方案三: 首先,你应该先了解继承的原理,继承的强大在于子类可以继承来自父类的一切可继承的特征和行为,更重要的是子类不仅仅可以继承来自父类的特征和行为,而且还具备自我扩展的能

java继承 在子类中声明同名变量的问题???

问题描述 java继承 在子类中声明同名变量的问题??? 如下代码: class Person { String name; int age; public void introduce(){ System.out.println("姓名是" + name + ",年龄是" + age); } } public class Students extends Person{ // String name; public static void main(String[

请问 java 继承的作用和意义是什么? 如果不用继承实现这个程序的话是否可以呢?

问题描述 请问 java 继承的作用和意义是什么? 如果不用继承实现这个程序的话是否可以呢? 请问 java 继承的作用和意义是什么? 如果不用继承实现这个程序的话是否可以呢? 解决方案 继承的用处在于,你可以在派生类中通过重写某些方法,实现对现有代码的自定义. 如果没有继承,你想利用现有的代码,你只有两个办法: - 直接在原有的代码上修改,那么你不知道你的修改会不会对使用这个类的别的代码造成什么影响 - 把原有代码拷贝一份,并且修改,这样原来的代码的作者想修正一个bug,你的代码没办法被更新,