Java中子类不能继承父类的构造方法应如何理解

z86802890 2011-03-27 02:35:15
如题!!!!!!!!!!
...全文
1202 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

构造方法的定义 是与类的名称相同;如果子类能够继承父类的构造方法;那么在子类的构造方法中就有不同于子类名称的构造法;
#这与构造方法的定义不符;所以子类是不能继承父类的构造方法的;


转载于http://blog.csdn.net/zennghong369/article/details/6008554
lincoln911 2011-03-27
  • 打赏
  • 举报
回复 1
3,4楼说的都是对的,4楼说的具体些
pzy123cn 2011-03-27
  • 打赏
  • 举报
回复
构造方法是绝对不可以被继承的
在 Java 中,无论是 explicit 还是 implicit 方式,都要求在子类的构造方法中调用其父类的构造方法。如果父类无构造方法(其实是一个默认无参的构造方法),那么子类的构造方法中会自动进行调用;如果 父类有自己的构造方法(这时父类不会有默认无参的构造方法),那么在子类的构造方法中,必须要调用父类的某个构造方法,而且必须是在构造方法的第一个语句 中进行调用。

究其原因,想必是 Java 语言设计者,要求子类有责任保证它所继承的父类尽快进入到一个稳定、完整的状态中。试想,如果没有这个约束,那么子类的某个继承自父类的方法可能会使用到父类中的一些变量,而这些变量并没有进行初始化,从而产生一些难以预料的后果,因此构造子类的对象前,必须构造父类的对象,并将之隐含于子类对象之中,使用关键字super引用父类对象。

也因此,当一个类的构造方法是 private 时,它是不可被 extends 的,因为子类构造方法难以调用到这个父类的构造方法。
引自(http://blog.csdn.net/javafuns/archive/2006/12/17/1446825.aspx)
sunnauq 2011-03-27
  • 打赏
  • 举报
回复

java中每个类必须有一个构造函数,如果没有显示的声明构造函数,那么编译器会自动加一个无参的构造函数。当显示定义了带参数的构造函数之后,而没有显示的定义无参构造函数,那么这个类就没有无参构造函数了。

子类继承父类,必须在子类的构造函数中调用父类的构造函数,如果子类得构造函数中,没有显示的调用,那么会自动调用父类的无参数构造函数,如果父类没有无参数构造函数,那么子类中必须显示的调用父类的构造函数。
z86802890 2011-03-27
  • 打赏
  • 举报
回复
你和没说一样,我想知道为什么不能,说说原因.
f8281888 2011-03-27
  • 打赏
  • 举报
回复
JAVA中的子类能继承父类的构造方法?不行吧,因为JAVA是一个标准,他没有规定这样的标准。即只能通过接口等来实现多继承。。
目 录 1剪刀石头布游戏设计思路阐述2 2程序概要设计2 2.1功能需求分析2 2.2性能需求分析2 2.3程序框图3 2.4 JAVA类及自定义类相互继承的层次关系3 2.4.1 Java类及自定义类的说明3 2.4.2类成员及作用4 String data。//接收数据4 Socket client = null。//定义套接字4 BufferedReader inputs = null。// 读取数据4 BufferedReader key = null。// 缓冲数据4 PrintStream outputs = null。//输出数据4 2.5 程序运行效果及存在的问题4 2.5.1运行效果图4 2.5.2存在的问题5 3程序详细设计5 3.1类获包的加载5 import java.io.*。5 import java.net.*。5 3.2自定义类创建服务器端5 3.3创建数据处理类6 4测试运行7 5源代码清单8 6总结10 基于JAVA的剪刀石头布游戏设计 1剪刀石头布游戏设计思路阐述 在设计游戏时,我们要充分考虑到剪刀石头布游戏的特性,以及多种技术的实现: 构造创建服务器端和客户端 创建输入输出流 编写服务器端处理数据的线程方法 绘制游戏界面 绘制界面上的提示 采用此方法设计使程序简洁明了,使绘制游戏界面时简单化,更加易于游戏的实现, 程序也更易于读懂。 如java得到输入输出流的方法: //调用客户端的getInputStream()方法 Inputs=newBufferedReader(newInputStreamReader(client.getInputStream()))。 通过调用此方法获取从服务器得到的数据 调用客户端的getOutputStream()方法,通过此方法把客户端的数据传输给服务器。 2程序概要设计 2.1功能需求分析 一个剪刀石头布游戏,根据一般的常识,首先要有两个人,两个人同时出,然后, 根据双方的出拳,决定谁是赢者,虽然想起来这个游戏很简单,但如何实现 ,还是有一定难度的。实现这个时针时涉及到几个技术问题: 1. 双方如何出拳 2. 如何同时出拳 3. 如何判断哪方赢了 4. 如何显示结果 剪刀石头布游戏,都是通过两个人同时出拳,然后根据双方出的拳,判定哪方是赢家 。 2.2性能需求分析 准确性:在实现此的过程,我们要考虑到,双方是否能同时地出拳,还要就是如何 去判断,准确地知道哪方是赢家. 简洁性:在实现此的过程,我们要考虑到,怎样使游戏界面更简单,让人更容易明 白它怎样去玩。 2.3程序框图 游戏程序框图如图1所示: 图1 游戏程序框图 2.4 JAVA类及自定义类相互继承的层次关系 2.4.1 Java类及自定义类的说明 自定义类: 类名:SocketServer 作用:服务器类 继承父类:Thread类 实现的接口:无 类名:Service 作用: 服务器类,它是判定胜负的类 继承父类:Thread类 类成员: String data。 BufferedReader inputs。 PrintStream outputs。 Socket client。 实现的接口:无 类名:Client 作用:客户端类 类的成员: getInputStream()。 getOutputStream()。 InputStreamReader ()。 readLine()。 实现的接口:无 自定义类子类和其父类继承关系如图2如所示: 图2 子类及其父类继承关系图 2.4.2类成员及作用 Service类成员: String data。 //接收数据 BufferedReader inputs。//读取数据 PrintStream outputs。//输出数据 Socket client。//定义套接字 Client类成员: String data。//接收数据 Socket client = null。//定义套接字 BufferedReader inputs = null。//读取数据 BufferedReader key = null。//缓冲数据 PrintStream outputs = null。//输出数据 2.5 程序运行效果及存在的问题 2.5.1运行效果图 剪刀石头布游戏效果如图3所示: 图3时钟效果图 2.5.2存在的问题 此游戏界面简洁明了,但还是有许多问题的,比如说这个界面不是GUI的,所以操 作性不强,也不美观,而且处理数据的random函数也有问题,它可能出现相同的结果 ,不能成为真正意义上的随机,所以这个小游戏还是有许多问题的,我会进一步的改 进它。 3程序详细设计 3.1类获包的加载 加载剪刀石头布游戏设计用到的类和包,用于运行主程

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧