1.为什么需要使用继承
(1)减少重复的代码
(2)提高代码的重用性
(3)提高程序的扩展性
2.Java继承的语法格式
继承关键字:extends
格式:
public class 类名(子类,派生类,超类) extends 类名(父类,基类) {
}
注意:Java的继承是单继承。
3.子类继承到了父类的哪些内容
子类继承到了父类所有的属性和所有的普通方法,但是不包括构造方法。
注意:能继承,但不表示能使用,这是因为访问修饰符的关系:
同一个类中 同包但是不同类 不同包也不同类 不同包也不同类但是有继承关系
private 可以 不可以 不可以 不可以
默认的 可以 可以 不可以 不可以
protected 可以 可以 可以 可以
public 可以 可以 可以 可以
4.方法重写
重写的条件:
1.返回值类型,方法名,参数个数,参数类型,参数顺序都必须要和父类的完全一致。
2.子类重写方法的访问修饰符可以大于或者等于父类方法的访问修饰符。
如何调用:
创建的对象必须是子类的对象;
优先执行子类的方法,如果子类没有才会执行父类的。
5.自动转型
自动转型的格式:
父类名 对象名 = new 子类构造方法();
问题:
如果使用自动转型,是不能调用没有在父类中定义过的方法。
原因是:Java在编译的时候,只会考虑对象名的类型,根据对象名的类型去做方法匹配,如果在父类中存在则通过编译,如果不存在则报错。
6.多态
多态是由方法重载,继承,方法重写和自动转型等技术的组合。
7.类的继承代码举例:
奥特曼与小怪兽练习:
题目条件:
奥特曼和小怪兽要进行PK,直到一方的血量为0时结束战斗,输出谁胜利了!
奥特曼可以攻击小怪兽,还要能攻击其他的奥特曼对象。
小怪兽可以攻击奥特曼,还要能攻击其他的小怪兽对象。
小怪兽类和奥特曼类中只能有一个攻击方法,方法中也只能有一个参数。
由于小怪兽类和奥特曼类中只能有一个攻击方法,方法中也只能有一个参数,所以我们先定义一个Noman类,以便奥特曼类和小怪兽类继承它。Noman类中定义了一个fight方法,也是奥特曼类和小怪兽类中要求唯一使用的方法。
接下来我们定义奥特曼和小怪兽类。
并且这两个类中重写了fight方法。
最后我们定义一个Manage类来实现。其中,奥特曼与小怪兽既可以攻击自己类的对象,也可以攻击对方类中的对象。
- 大小: 23.5 KB
- 大小: 10.5 KB
- 大小: 10.9 KB
- 大小: 22.1 KB
分享到:
相关推荐
很好的qt类继承图,这份比较齐全,需要的童鞋赶紧下载
一个student类,lectureTeatre类,继承抽象module类,通过继承来实现接口
qt43-类继承关系图.pdf qt43-类继承关系图.pdf qt43-类继承关系图.pdf qt43-类继承关系图.pdf
QT4.1 类库的类继承关系图,jpg格式
Qt5学习:常见类继承关系 简明示意图 ,常用的qt类,缩放后 也是相对比较清楚,暂时,只搞到这一个,看到很多其他的qt类图关系的图都需要很多的积分,这个资源不需要积分,希望能帮助到需要的人。
c++类继承关系 Hierarchy Chart 继承关系 基类CObject派生出的各类,MSDN中用
在类继承中使用动态内存分配需要有一定的技巧,其中包括在基类中使用动态内存分配,在继承类中使用动态内存分配以及在继承类中使用动态内存分配,程序代码演示了这三种情况下的使用方法。
Qt5.1类继承关系图,免费资源 。
内容:1.Qt5类继承图 2.常用的类的更详细说明和图解 3.你能学到一些PyQt自我提升的方法
QT类继承图.pdf
知识星球Sariel分享,类继承绕过。可轻松过D盾。反正现在能用
Qt5类继承关系图
Qt5和Qt4的类继承关系图,可以清楚的知道Qt5和Qt4的类有哪些区别。
Qt的类继承关系图解,PDF版,内容全面而且比较清晰,需要的可以下载。
高清qt5中的各种类关系继承图pdf帮助文档,支持放大缩小功能。
用到了java中方法的重写、重载、数组的相关操作,实现了教师、学生信息的录入、储存、人数统计、输出、删除等功能,缺失统计不同系不同班级学生成绩的功能,尽量有时间补上,程序很简单,仅仅是老师布置的实验题。...
Qt5类继承关系图,彩色的,并且带有目录,方便分类查找
JavaScript一种没有类的,面向对象的语言,它使用原型继承来代替类继承。这个可能对受过传统的面向对象语言(如C++和Java)训练的程序员来说有点迷惑。JavaScript的原型继承比类继承有更强大的表现力,现在就让我们...
包含qt4中所有主要常用类的继承关系,很实用
FEDay就是前端日,在这里:...我的主题是《无类继承:JavaScript面向对象的根基》,主要是从JS中面向对象的历史讲起,一直到元类继承的实现。相关的项目在这里:https://github.com/aimingoo/metameta