方法的重写(override)
重写的概念
在子类中定义和父类中相同的函数,直接调用函数时,实际使用的是子类中的函数,这种情况叫做方法的重写(覆写);
一般开发中,如果父类的功能不满足子类需要,子类都会重写父类的函数;
重写的应用
案例:描述手机这类事物。原始的手机和现代的手机
以前的手机只能打电话,发短信
现在的手机继承父类的功能没有问题,只不过现在的手机功能更加的高级
打电话不仅仅可以打语音电话,还可以视频通话
发短信不仅仅可以发文字信息,还可以发送图片,表情,视频.....
所以如果直接使用父类的方法已经不能满足需求了,此时子类就需要重写父类中的方法
现在的手机继承父类的功能没有问题,只不过现在的手机功能更加的高级
打电话不仅仅可以打语音电话,还可以视频通话
发短信不仅仅可以发文字信息,还可以发送图片,表情,视频.....
所以如果直接使用父类的方法已经不能满足需求了,此时子类就需要重写父类中的方法
继承的作用:子类可以直接拥有父类成员;其中,私有成员和构造函数不参与继承;
java 中类继承的特点:只支持单一继承和多重继承,不支持多继承(一个类不能同时继承多个类)
继承中成员变量的特点:
子类中可以直接使用父类中定义的非私有的成员变量;
如果子类中定义了和父类中相同的成员变量,直接调用,实际使用的是子类中定义的成员变量;要使用父类中定义的成员变量,需要使用关键字super,格式是:super.变量名;
继承中一般函数的特点:
子类中可以直接使用父类中定义的非私有的一般函数;
如果子类中定义了和父类中一样的函数,直接调用,实际使用的是子类定义的函数;要使用父类中定义的一般函数,需要使用关键字super,格式是:super.函数名(参数);
方法重写的概念:在继承中,如果子类中定义了和父类中一样的函数,则子类对象实际使用的是子类中定义的函数,这种情况叫做函数的重写;
子类重写父类函数需要注意的事项:
1、子类中重写的函数,函数名、参数列表、返回值类型和是否静态,必须和父类中函数相等;
2、子类中重写的函数,访问权限不能比父类中函数低;
继承中子类实例化的特点:
1、子类实例化时,实际只创建子类一个对象;
2、子类对象中会为父类中的非静态成员变量分配空间;
3、在执行子类的构造函数时,必须要先调用父类的构造函数,作用是给父类的成员变量显示赋值;
4、子类调用父类的构造函数,需要使用super关键字,格式是:super(参数);并且super语句必须在子类构造函数的第一行;
5、子类构造函数中调用其他构造函数的this语句不能和调用父类构造函数的super语句共存;
super 小结:super,表示父类;作用是区分子类和父类的成员,以及在子类的构造函数中调用父类构造函数;****