java 接口与继承
一、继承条件下的构造方法调用
运行 TestInherits.java 示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用代码是否是第一句,影响重大!
1) 源代码
class Grandparent {
public Grandparent() {
System.out.println("GrandParent Created.");
}
public Grandparent(String string) {
System.out.println("GrandParent Created.String:" + string);
}
}
class Parent extends Grandparent {
public Parent() {
//super("Hello.Grandparent.");
System.out.println("Parent Created");
// super("Hello.Grandparent.");
}
}
class Child extends Parent {
public Child() {
System.out.println("Child Created");
}
}
public class TestInherits {
public static void main(String args[]) {
Child c = new Child();
}
}
2)运行结果截图
3)结论
通过 super 调用基类构造方法,必须是子类构造方法中的第一个语句。
一、参看ExplorationJDKSource.java示例
1) 源代码
public class ExplorationJDKSource {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(new A());
}
}
class A{}
2) 运行结果截图
3)结论
前面示例中,main方法实际上调用的是:
public void println(Object x),这一方法内部调用了String类的valueOf方法。
valueOf方法内部又调用Object.toString方法:
public String toString() {
return getClass().getName() +"@" +
Integer.toHexString(hashCode());
}
hashCode方法是本地方法,由JVM设计者实现:
public native int hashCode();
最新文章
- Linux 操作mysql数据库 创建库 导入、删除表
- Solr学习总结(三)Solr web 管理后台
- php的进制转换
- 解决eclipse Maven 主项目不能刷新maven
- 【bzoj1098】办公楼
- kuangbin_MST B (POJ 1287)
- qml自定义标题栏
- list对象数组,xpath复杂定位校验,POST入参为number数组,POST入参为JSON对象数组
- 简单的GIT上传
- Linux系统中常见文件系统格式
- GDAL——命令使用专题——gdalsrsinfo命令
- spring整合redis连接
- 假设程序需要一个int类型的变量来保持你所有的音乐CD的数量
- Ubantu 16.04升级内核版本和还原到升级之前的内核版本的方法
- dedecms调用全站相关文章怎么设置
- Python进阶-字符串格式化
- mongodb常用查询
- java struts2入门学习---拦截器学习
- lsblk命令详解
- jquery源码解析:pushStack,end,ready,eq详解