多态
2015-07-21 14:20
176 查看
package six;
public class Teacher extends Persion{
public String wordID;
public String curriculum;
public String academy;
public Teacher(String name){
System.out.println(name);
}
public void teach(){
System.out.println("I am teaching");
}
}
问题:有参数的构造函数覆盖掉默认的构造函数,导致子类继承的错误,原因是子类的构造函数的函数体若为空,则默认有super();调用父类的的默认构造函数,但此时的默认构造函数已不存在,故报错。
注:若此时再重新创建一个类继承此父类,一继承便会报错,原因也在此
解决方法:1、在父类中将默认构造方法显示的重写一遍
2、在子类中的构造方法中调用父类的有参数的构造方法
Teacher()为父类,MathTeacher()为继承自Teacher()的子类
Teacher teacher = new MathTeacher();
说明:teacher调用的是父类的方法,不能调用子类的方法,若子类中有父类方法的重写,则调用子类中的重写方法
作用:可实现方法的多态,在子类中重写父类的方法,这样便可以通过父类定义的实例调用同样的方法,实现不同的功能
public class Teacher extends Persion{
public String wordID;
public String curriculum;
public String academy;
public Teacher(String name){
System.out.println(name);
}
public void teach(){
System.out.println("I am teaching");
}
}
问题:有参数的构造函数覆盖掉默认的构造函数,导致子类继承的错误,原因是子类的构造函数的函数体若为空,则默认有super();调用父类的的默认构造函数,但此时的默认构造函数已不存在,故报错。
注:若此时再重新创建一个类继承此父类,一继承便会报错,原因也在此
解决方法:1、在父类中将默认构造方法显示的重写一遍
2、在子类中的构造方法中调用父类的有参数的构造方法
Teacher()为父类,MathTeacher()为继承自Teacher()的子类
Teacher teacher = new MathTeacher();
说明:teacher调用的是父类的方法,不能调用子类的方法,若子类中有父类方法的重写,则调用子类中的重写方法
作用:可实现方法的多态,在子类中重写父类的方法,这样便可以通过父类定义的实例调用同样的方法,实现不同的功能
相关文章推荐
- OC学习笔记之@property关键字
- 关于服务程序(service)的命令(windows\linux)
- 类模板以及基类的也是模板的使用方法
- 监控宝 概览页升级
- linux 2>&1
- GRE写作必备句型
- PAT (Basic Level) Practise (中文)1012. 数字分类 (20) C语言
- Spring MVC 4.1.4 RESTFUL风格返回JSON数据406错误处理 .
- 表驱动法
- udev--自动挂载U盘和光盘
- Linux_安装部署MySQL5.6
- Leetcode Delete Node in a Linked List
- 39个让你受益的HTML5教程
- 直布购物决策助手
- Qt 菜单策略
- uva 699 The Falling Leaves(建二叉树同时求和)
- PAT (Basic Level) Practise (中文)1011. A+B和C (15) C语言
- JAVA多线程读写文件范例
- python sqlite3 插入数据例程
- CSS3详解:background