Java,super用法实例
2016-04-09 10:46
369 查看
class Father{ String name; int age; public Father(){ name="Tom"; age=10; } } class Son extends Father{ public Son(){ //-----1 //System.out.print(name+","+age);///输出:Tom,10 //-----2 super(); //// Father()是无参构造函数,写不写 super();都一样 System.out.print(name+","+age);///输出:Tom,10 } } public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Son son =new Son(); } }
class Father { String name; int age; public Father(String name, int age) { this.name = name; this.age = age; } } class Son extends Father { public Son() { // -----1错误, 调用父类无参数的构造函数,但没有,会报错 // super(); //// FFF // System.out.print(name);/// // //-----2正确 super("Dave", 2);// /TTT 显式调用父类的构造函数 System.out.println(getClass() + "," + name + "," + age);// 输出:class Son,Dave,2 System.out.print(getClass() + "," + this.name + "," + this.age);// 输出:class Son,Dave,2 // //Son继承Father后,也继承了name和age的变量值 // -----3 错误 默认调用父类无参数的构造函数,但没有,会报错 // System.out.println(getClass()+","+name+","+age); // System.out.print(getClass()+","+this.name+","+this.age); //提示: Implicit super constructor Father() is undefined. Must explicitly invoke another constructor // /必须要定义其他的父类构造函数 } } public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Son son = new Son(); } }
第一个例子中,其实在类Son中的构造函数中的
super()可以不写,JAVA会默认调用父类的无参数的构造函数。
第二个例子的1和3中,如果父类没有定义无参数的构造函数,会报错,
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树