- 浏览: 280568 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (251)
- 面试基础 (9)
- java基础 (40)
- 调试配置 (10)
- 转载文章 (4)
- 心灵鸡汤 (8)
- java工具 (6)
- CSS学习 (7)
- css案例 (2)
- 经济 (1)
- 小节惹的祸 (1)
- 实例心得 (21)
- 数据库 (7)
- 有用的代码 (17)
- Struts (3)
- Hibernate (5)
- Spring (3)
- java xml (7)
- Java Reflection API (1)
- 网络配置 (4)
- SSH (8)
- java开源框架 (13)
- ajax (4)
- swing (1)
- 设计模式 (1)
- 未主流组件 (7)
- WebService (6)
- 20111019 (1)
- xiao清讲课笔笔~~~UML (0)
- 笔记 (2)
- SOAP (9)
- 第一天遇到的问题 (1)
- Java Card (3)
- 面试 (18)
- Java (17)
- JNLP 集群 (0)
- java 面试 (3)
最新评论
-
ap0406708:
138XXXXXXXX
webserivce spring-ws 安全 -
yezhuzhe:
...
[code]SSH上传下载 ------温故知新 -
thinking_ou:
怎么需要解压密码
webserivce spring-ws 安全 -
ap0406708:
uuu999ggg 写道连return都写错了
try catch finally 块 与 函数的return -
wst0350:
...
java正则表达式,js正则表达式
package com.zhao.impl; public interface RideCar { public void CanRideCar(); }
package com.zhao.impl; public interface RidePlane { public void CanRidePlane(); }
package com.zhao.impl; abstract public class Person { public String name; public int age; static { //无用abstract 声明为抽象类的话就会执行并左最先 System.out.println("Person's static block"); } public Person() { name = "adult"; age = 18; System.out.println("Person's default construction"); } public Person(String name,int age) { //有this()的话就会调用自己的默认构造成方法 //this(); this.name=name; this.age=age; System.out.println("Person's seft construction"); } }
package com.zhao.impl; import com.zhao.impl.Person; import com.zhao.impl.RideCar; public class Father extends Person implements RideCar { static public int spfi = 1; static public int spfi2 = spMethod(); static public int spfi3; static { spfi3=111; System.out.println("Father's static block"); } public int pfi = 3; public int pfi2 = pMethod(); public int pfi3; { pfi3=333; System.out.println("Father's instance block"); } public Father() { //super(); System.out.println("Father's default construction"); } public Father(String name,int age) { super(name,age); System.out.println("Father's seft construction"); } public void CanRideCar() { System.out.println("Father can ride a car"); } private static int spMethod() { System.out.println("Father's static Method"); return 11; } private int pMethod() { System.out.println("Father's instance Method"); return 33; } }
package com.zhao.impl; public class Child extends Father implements RidePlane { static public int spci = 2; static public int spci2 = spMethod(); static public int spci3; static { spci3=222; System.out.println("Child's static block"); } public int pci = 4; public int pci2 = pMethod(); public int pci3; { pci3=444; System.out.println("Child's instance block"); } public Child() { //有没有super()都会调用父类的默认构造方法 //super(); System.out.println("Child's default construction"); } public Child(String name,int age) { //不能再有super();或this(); //原因:constructor call must be the first statement in the constructor //super(name,age);就不会调用父类的默认构造方法而调父类两参数的构造方法 super(name,age); System.out.println("Child's self construction"); } public void CanRidePlane() { System.out.println("Child can ride a plane"); } private static int spMethod() { System.out.println("Child's static Method"); return 22; } private int pMethod() { System.out.println("Child's instance Method"); return 44; } }
package com.zhao.test; import com.zhao.impl.Child; import com.zhao.impl.Father; import com.zhao.impl.Person; import com.zhao.impl.RideCar; public class TestClass { public static void main(String[] args) { Child c; System.out.println("program start"); System.out.println("Child's spci:"+Child.spci); c = new Child("zhao",24); c.CanRidePlane(); System.out.println("program end"); System.out.println("second program start"); Father d; //Child d; 显示是一样的 d = new Child(); System.out.println("second program end"); } }
program start Person's static block Father's static Method Father's static block Child's static Method Child's static block Child's spci:2 Person's seft construction Father's instance Method Father's instance block Father's seft construction Child's instance Method Child's instance block Child's self construction Child can ride a plane program end second program start Person's default construction Father's instance Method Father's instance block Father's default construction Child's instance Method Child's instance block Child's default construction second program end
package com.zhao.test; import com.zhao.impl.Child; import com.zhao.impl.Father; import com.zhao.impl.Person; import com.zhao.impl.RideCar; public class TestClass2 { public static void main(String[] args) { Person p; Father f; Child c; f = new Child(); System.out.println("f的class:"+f.getClass()); //f是Child类型 //不把f强调转换成Child类型是无Child类型的属性和方法的, //尽管它是用Child的构造器建起,但它的类型是Father System.out.println(((Child)f).pci); c = new Child("zhao",24); System.out.println(c.name+","+c.age); p=f; System.out.println(p.name+","+p.age); System.out.println(f.name+","+f.age); f = c; System.out.println(f.name+","+f.age); // c= p 不能通过编译 //总结,子类变量可以赋值给父类变量,反之不行。 //如人是父类,程序员是子类,程序员可赋值给人,是因为所有程序员都是人。 //人不能赋赋值程序员,因为所有人不是全部是程序员,还有医生,老师~~~ RideCar rc = new Child(); rc.CanRideCar(); System.out.println(rc.getClass()); System.out.println(((Child)rc).name); System.out.println(((Father)rc).name); Father fa = new Father(); //System.out.println(((Child)fa).name); //不能所fa强调转换成Child,因为它本身是father Child ch = new Child("zhao",120); System.out.println(((Father)ch).name); //子类程序员可以强制转换成父类人的原因是,子类有父类的所有属性, //反之不能,是因为父类无子类的所有属性。 } }
f的class:class com.zhao.impl.Child 4 zhao,24 adult,18 adult,18 zhao,24 class com.zhao.impl.Child adult adult zhao
总结:
一.
1.有没有super()都会调用父类的默认构造方法
2.super();this();super(name,age);这些调用构造器的语句只能用一个.原因:
constructor call must be the first statement in the constructor
用了super(name,age);就不会调用父类的默认构造方法而调父类两参数的构造方法
3.用abstract 声明为抽象类的话,好像static块就不执行.
4.Father d = new Child(); 和Child d = new Child();输出结果是一样的.
二.
1.赋值,子类变量可以赋值给父类变量,反之不行。
2.强制转换,子类变量可以强制转换成父类.
3.实际类型,用了什么类的构造成器构造,实际类型就是什么,如Father d = new Child(); ,d的实际上就是Child类型.RideCar rc = new Child(); ,rc实际上也是Child类型.
发表评论
-
从安全和体验上解析移动App的登录
2016-03-02 11:00 657从安全和体验上解析移动App的登录 http://blog.c ... -
hwpf POI
2010-11-13 14:19 1132样式集 StyleSheet styleSheet = hwp ... -
java 注解~~~
2010-11-05 16:00 864/** * 下载文件流 * @param re ... -
SQL
2010-11-04 09:59 821select * from ( select s1.* ,s2 ... -
为什么JAVA要提供 wait/notify 机制?是为了避免轮询带来的性能损失
2010-10-20 17:43 974/* *分析synchronized方法 *s ... -
spring 容器
2010-10-11 10:43 794WebApplicationContext wac = ... -
barcode4j demo
2010-09-25 17:51 1014demo~~~~~~~ -
java 转义字符
2010-09-19 14:33 993public class testWord { p ... -
Spring Security 网址
2010-08-02 16:44 859Spring Security 参考文档 [url]h ... -
单点登录(Single Sign On) SSO
2010-08-02 15:31 812编写你自己的单点登录(SSO)服务 http://blog.c ... -
POI 生成excel文件
2010-08-02 11:16 1033package com.zhao.poi.test; ... -
java调用本地方法,java与C,C++互调
2010-07-28 10:48 1255JNI Java Native Interface http ... -
用户权限管理模块设计
2010-06-15 11:24 1246用户权限管理模块设计 http://wenku.baidu. ... -
Flex
2010-05-26 14:26 654http://www.blogjava.net/bolo/ar ... -
好垃圾本书中好有用的两个存储过程
2010-05-12 14:52 765来源: SQL动态交叉表 http://blog.csdn.n ... -
jasperreports 与 iReport
2010-04-28 15:10 8971. jasperreports 是生成报表的组件, 其中 ... -
ANT 命令
2010-04-28 14:27 10841. ant 默认命令 2. ant -p 查看所有 ... -
java编译 ant
2010-04-28 10:36 795Tutorial: Hello World with Ant ... -
java如系统环境变量和bat设环境变量
2010-04-27 15:59 2546java_home.bat wmic ENVIRONMEN ... -
网站VS系统
2010-02-07 09:56 989http://www.yingshengxs.com/cn/s ...
相关推荐
此java类实现了对数据表的分类递归树的实现,为本人倾力之作,后期,会发布js版,敬请期待!
8. **父子类转换**:在Java中,一个子类对象可以被强制转换为父类类型,但需要注意的是,父类引用只能调用父类的方法,不能调用子类特有的方法。在本实验中,虽然没有直接展示转换操作,但在实际应用中,这种转换...
本文将详细解析Java中父子类之间的异常处理规则。 1. 子类构造函数与父类构造函数的异常处理 Java中的构造函数并不受到覆盖方法的异常限制。这意味着子类构造函数可以抛出任何类型的异常,而不必考虑父类构造函数...
类加载器之间存在父子关系,但这种关系不是Java类的继承关系,而是一种层次结构,允许子加载器委托父加载器完成加载任务。这种机制有助于保护程序的安全性和稳定性。 #### 五、总结 了解Java中类的生命周期对于...
一、数据库父子结构数据设计 大部分采用 parentId的形式来存储父id,并且只存储父id,祖父Id不存储。也可以添加存储层级级别或者层级关系等字段。 CREATE TABLE `t_resource` ( `id` varchar(255) NOT NULL ...
3. **工具类设计**:可以创建一个`TreeUtil`工具类,提供静态方法如`buildTree(List<Node> nodes)`,该方法接收一个包含所有节点的列表,然后按照上述逻辑构造出树形结构。 4. **实现类**:如果需要更复杂的功能,...
在这个问题中,我们通常有一个扁平化的数据列表,其中每个元素代表一个节点,节点之间可能存在父子关系。我们的目标是将这个列表转换为树形结构,这样可以更好地体现数据间的层次关系。 对于非递归方法,我们可以...
13. **重写与重载的区别**:重载发生在同一类内,重写发生在父子类之间。 14. **多态**:多态性是面向对象的重要特性,允许父类型的引用指向子类对象。这样,可以使用父类型的引用调用子类特有的方法,提供了灵活性...
202 10.3.3 父子类间的构造器的调用流程 204 10.3.4 如何自定义构造器 207 10.4 什么是单子模式 208 10.5 构造器在程序中是何时运行的 211 10.6 综合练习 214 10.7 小结 215 10.8 习题 215 第11章 异常处理(精彩...
树形结构是一种在计算机科学和数据管理中广泛应用的非线性数据结构,它模拟了现实世界中实体之间的层级关系,例如公司的组织结构、计算机文件系统的目录结构等。树形结构在程序设计中极为重要,尤其是在需要展示层级...
1. 不同名子类之间的静态块不会相互调用,也没有任何联系。 2. 不同名子类在创建对象之前,如果父类的静态块没有被调用过,那么就先调用父类静态块,此时再看本子类是不是第一次被加载,如果是,那么接着调用本子类...
1. **默认序列化**:如果一个类只实现了`Serializable`接口,那么Java会自动处理序列化,将类中所有非`transient`和非`static`的字段转换为字节流。 2. **自定义序列化**:如果类实现了`Serializable`接口,并且...
- **问题解析**:Java 中有两种内部类:静态内部类(Static Nested Class)和非静态内部类(Inner Class)。 - **区别**: - **静态内部类**: - 可以拥有静态成员; - 不依赖于外部类的实例; - 访问权限同外部...
在Java中,`abstract`关键字不能单独使用于变量、构造器或初始化块,仅能用于类和方法。 ### access 访问控制是Java中一个核心概念,通过`public`、`protected`、`private`和`default`(包级访问)来限定类、方法...
类加载器的设计允许Java应用使用多种类加载器,而这些类加载器之间可能具有父子层级关系。当一个类加载器尝试加载一个类时,它会先委托给其父类加载器来加载,如果父类加载器无法完成加载,子加载器才会尝试自己加载...
- 管道:允许父子进程之间的通信。 - 消息队列:允许发送消息到接收者。 - 信号量:管理多个进程对共享资源的访问。 - 共享内存:允许多个进程共享同一段内存区域。 - 套接字:允许不同进程间的网络通信。 6. ...
1. 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 2. 继承:继承是从已有类得到继承信息创建新类的过程...
- 重写发生在父子类之间,方法名、参数列表和返回类型完全相同。 - 重载发生在同一个类中,方法名相同但参数列表不同。 - **重载能否改变返回值类型**:不可以。 #### 21. static关键字 - **定义**:用于声明静态...
- **重写** 父子类间,方法名、参数列表相同,返回值和异常处理需遵循特定规则,运行时决定。 4. **构造器 Constructor** - 构造器不能被重写(override),但可以重载。 - 构造器不能用`static`修饰,只能用`...