社区
Java SE
帖子详情
Java中子类不能继承父类的构造方法应如何理解
z86802890
2011-03-27 02:35:15
如题!!!!!!!!!!
...全文
1202
6
打赏
收藏
Java中子类不能继承父类的构造方法应如何理解
如题!!!!!!!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
狂奔的蜗牛Evan
2012-09-10
打赏
举报
回复
构造方法的定义 是与类的名称相同;如果子类能够继承父类的构造方法;那么在子类的构造方法中就有不同于子类名称的构造法;
#这与构造方法的定义不符;所以子类是不能继承父类的构造方法的;
转载于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是一个标准,他没有规定这样的标准。即只能通过接口等来实现多继承。。
JAVA
的剪刀石头布游戏设计方案.doc
目 录 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类获包的加载 加载剪刀石头布游戏设计
中
用到的类和包,用于运行主程
JAVA
中
子类
会不会
继承
父类
的
构造方法
总结:
子类
实例化对象时,会先调用
父类
的
构造方法
,如果
子类
的
构造方法
没有显式的调用
父类
的
构造方法
,默认调用super();
子类
要使用
父类
有参的
构造方法
,使用super(参数)形式,且super()必须是
子类
构造方法
中
的第一行语句。 如果
父类
没有不带参数的
构造方法
,且
子类
的
构造方法
中
有没有显式的调用
父类
其他
构造方法
,则
java
编译器会报错
父类
无参+
子类
无参=两者都输出(
父类
先、
子类
后)
父类
(无参)++
子类
有参(没有super
父类
有参)=
父类
无参+
子类
有参
父类
(无参+有参)++
子类
无参=
父类
无参+
java
中
子类
能
不能
继承
父类
构造方法
首先来看一下下面这个例子: 结果有些和想象
中
的不一样吧。 原因如下:其实每个
子类
构造方法
的第一条语句,都是隐含地调用super(),如果
父类
没有这种形式的构造函数,那么在编译的时候就会报错。 所以
父类
中
的
构造方法
是
不能
继承
的,但是在实例化
子类
的时候会调用
父类
的
构造方法
,这样就能解释下面这种情况了。 转载于:https://www.cnblogs.com/liumingyi/...
java
中
子类
继承
父类
时是否
继承
构造方法
?
答案是:
java
中
子类
是不会
继承
父类
的构造函数但是可以调用
父类
Animal: package encryption; public class Animal { private String name = "animal"; public Animal() { System.out.println(".....this is Animal....
Java
继承
中
子类
不能
继承
父类
的所有内容
引入:
子类
继承
父类
,
子类
就得到了
父类
的属性和行为。 但是并非所有
父类
的属性和行为等
子类
都可以
继承
。
子类
不能
继承
父类
的东西:
子类
不能
继承
父类
的构造器:
子类
有自己的构造器。(没有争议的) 有争议的观点:
子类
是否可以
继承
父类
的私有成员(私有成员变量,私有成员方法) ? 答:
子类
是可以
继承
父类
的私有成员的,只是
不能
直接访问而己。 例如儿子
继承
了他爸的保险柜,只不过没有密码打不开保险柜。 可暴力访问
继承
自
父类
的私有成员。
子类
是否可以
继承
父类
的静态成员? 答:
子类
是
不能
继承
父类
的静态成员的。
子类
.
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章