java代码继承疑惑,请有心人解答
总结:这段程序没有问题,编译运行都是可以的。关键是,子类的无参构造方法第一句少了super(a,b);运行后,显示了双重结果
。还有。如果子类中没有声明成员变量String name.那么结果显示父类和子类的姓名都是一样的。来自与子类的无参构造方法,
里面传的值。当子类没有定义姓名时,它将继承父亲的属性,
package com.ad; //重写、继承方法
class Kaai {
String name;
int age; public Kaai(String a, int b) {
name = a;
age = b;
} public Kaai() {
name = "mao";
age = 44;
} public void write1() {
System.out.println("我可能叫:" + name + ",我的年龄是:" + age);
}
} class S extends Kaai {// 这里的类不能定义为public 公共类,为什么?
String name;// 果然是这一句啊。省了这句。那么程序就变了。意思:子类的姓名源于父类中的姓名,继承父类的属性
int id;// 如果默认String name不写出啦。则如果不在子类声明姓名,那么调用的时候,构造方法 public S(String a, int b, int c) {
// super(a,b);我发现少了这一句,结果显示会增加相同的行来显示,重复了。但是为什么呢?
// 继承就是子类把父类的东西,属性,方法拿来用啊。这里的有参构造方法指的是什么呢?,不调用怎么会这样恩?
name = a;// super永远是指,当前类的直接父类对象,继承父类的属性
// TODO Auto-generated constructor stub
id = b; age = c;
} // /子类中的有参构造方法并没有继承父类super()。语句。那么父类的属性还是自己类的。
// 如果子类中调用了父类的有参构造方法,那么可以使用赋值后的属性值
// 我想调用父类的方法,这个名字是我定
public S() {// 这里的父类的属性为什么不能用?、//调用父类的有参构造方法
super("lfghfdgang", 23);// super永远指代当前类的直接父类对象,这里姓名不能继承。子类父类均相同了。
name = "gappng";// 调用父类的有参构造方法
// 首先子类先调用父类的构造方法,在调用自己的//子类用子类的属性方法。
// age = 88;// 子类中的这个姓名不是自己的姓名,而是父类的。继承的。所以子类的姓名不可能是
id = 123;// 这样子类中的姓名和年龄来自于父类,所以当然和父类相同了 }// 这个age:子类中没有,所以它是继承父类的。姓名是自己的。子类没有继承。 public void write() {
System.out.println("我的学号是:" + id + "我的姓名是:" + name + "我的年龄是:" + age);
// System.out.println("父类的姓名:"+super.name);
} }
java代码继承疑惑,请有心人解答的更多相关文章
- java代码继承------多层继承
总结:继承.方法的重要性, 运行结果显示: class A is callingclass B is callingclass C is calling package com.addd; //jav ...
- java代码继承super
总结:多态 :. 当重写父类的方法的时,子类对象名可以调用父类的方法,以及不带参的构造方法 package com.addd; public class rr { int a, b; String c ...
- java代码继承基础
总结:继承是java编程的核心,我搞不明白,子类对象调用父类的成员方法时.父类的带参构造方法有什么用,还赋值了 package com.bc; //普通类 public class yt { publ ...
- java代码---继承-子类使用继承父类的属性。理解测试
总结:对于继承.如果父类有的成员变量而子类没有,那么子类的成员变量赋值是来自于父类的,当在子类构造方法赋值时,它和父类的成员变量值是一样的 当成员变量在父类和子类中都存在时,父类用父类的属性,子类用子 ...
- java代码-----------继承练习
总结:父类和子类拥有相同的 方法时,父类的方法被覆盖,子类 package com.sads; class fong { void pprint() { this.print(); this.prin ...
- java代码-------继承的方法----重写还是重载
总结:是自己不听讲吧,不懂啊 感觉父类的方法,子类可以重载,只要参数个数不同,重载与返回值没有关系 重写绝对是可以的.但答案是只能重写啊 package com.s.x; public class T ...
- java代码继承难点。构造方法的调用
总结:子类默认调用父类的无参构造方法.重写时,父类方法将被覆盖,不被调用,在子类中可以使用super.方法():可以实现 运行显示: evente.x:55 evente.x:55 B.y:57 pa ...
- java代码继承。。。找出不能继承父类方法的问题
总结:当子类中没有定义name属性时,在子类的无参构造方法中,父类的姓名是不能被继承的. 输出的结果是,子类无参构造方法里的属性值,也就是是属 控制台显示: 我叫:周杰伦,今年:2岁我的姓名:周杰伦, ...
- 请阐述调用Activity有哪几种方法,并写出相关的Java代码
请阐述调用Activity有哪几种方法,并写出相关的Java代码. 答案:可以采用两种方式调用Activity:显示调用和隐式调用.显示调用直接指定了Activity,代码如下: Intent int ...
随机推荐
- IntelliJ Idea 快捷键精选
Alt+Enter,导入包,自动修正Ctrl+F,查找文本Alt+Up/Down,上/下移一行:在方法间快速移动定位:与光标位置有关Alt+Shift+Up,多次up可选中一行Ctrl+X,剪切行Ct ...
- nginx 安装配置+清缓存模块安装
经过一段时间的使用,发现 nginx 在并发与负载能力方面确实优于 apache,现在已经将大部分站点从 apache 转到了 nginx 了.以下是 nginx 的一些简单的安装配置.环境操作系统: ...
- 【bzoj1258】三角形tri[CQOI2007](乱搞)
题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=1258 这是道很意思的大水题,虽然看上去一脸懵逼,但画张图出来看看也可以窥见一丝端倪. ...
- 【bzoj2151】种树(堆/优先队列+双向链表)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2151 这道题因为优先队列不怎么会用,而且手写堆的代码也不长,也想复习一下手写堆的写法…… ...
- 剑指Offer——字符串的排序
Question 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入描 ...
- html div 加边框样式
边框虚线样式:dashed边框实现样式:solid border:1px dashed #000代表设置对象边框宽度为1px黑色虚线边框 border:1px solid #000代表设置对象边框宽度 ...
- js组合模式
组合模式(Composite),将对象组合成树形结构以表示‘部分-整体’的层次结构.组合模式使得用户对单个对象和组合对象的使用具有一致性. 透明方式,也就是说在Commponent中声明所有用来管理子 ...
- 被人遗忘的MAX_FILE_SIZE文件上传限制大小参数
在文件上传中,我们经常会要求显 示用户上传文件大小,超过上传限制的文件就会不允许用户上传.虽然我们可以用程序去判断上传文件是否超过限制,但是其实我们的PHP程序是无法判断用户本 地文件大小的.所以等到 ...
- DH01-简单工厂模式
模式简介 简单工厂模式又称静态工厂方法模式,定义一个用于创建对象的接口.其主要组成部分为: 工厂类角色:模式的核心,具有一定的商业逻辑和判断逻辑.如示例中的类AnimalSpecies 抽象产品角色: ...
- Java 框架
Netty: Netty是由JBOSS提供的一个java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序. 也就是说,Netty ...