欢迎来到天天文库
浏览记录
ID:37598229
大小:1.01 MB
页数:24页
时间:2019-05-12
《面向对象编程07继承和多态》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章面向对象编程本章主要内容4.1简介4.2面向对象的基本概念4.3面向对象的基本语法4.4类和包4.5类的方法4.6对象4.7继承和多态4.8接口和抽象类4.9面向对象开发概念定义类的方法的步骤是什么?类中的一个方法如何调用类的另一个方法?类中的一个方法如何调用另一个类的方法?分别说明成员变量和局部变量的作用域。如何给类的方法添加JavaDoc注释?课程回顾掌握继承掌握super关键字掌握多态本章目标4.6继承和多态计算机语言设计犹如在公园里漫步。我是说侏罗纪公园。——LarryWall(Perl语言之父)生活中的继承生活中,继承的例子随处可见动物食草动物
2、食肉动物谁是父类?谁是子类?能说出继承的特点吗?继承需要符合的关系:is-a,父类更通用、子类更具体生活中的继承子类具有父类的一般特性(包括属性和行为),以及自身特殊的特性巴士是汽车吗?卡车是汽车吗?出租车是汽车吗?最大载客数量报站引擎数量外观颜色刹车加速汽车最大载重量卸货所属公司最大载客数量打发票属性行为请问:出租车包含哪些属性和行为呢?4.6.1类和类的继承类的设计其实是对现有世界的模仿在继承中,一般常见的有属性继承,属性隐藏,方法继承,方法覆盖,方法重载等技术。在Java语言中,用extends关键字来表示一个类继承了另一个类在父类中只定义一些通用的属性
3、与方法子类自动继承父类的属性和方法,子类中可以定义特定的属性和方法子类的构造方法中,通过super关键字调用父类的构造方法方法重写后,通过super关键字调用父类的方法在Java中,所有的Java类都直接或间接地继承了java.lang.Object类如何实现继承3-1在Java语言中,用extends关键字来表示一个类继承了另一个类,例如:publicclassWomanextendsHuman{//其余代码省略}在父类中只定义一些通用的属性与方法,例如:publicclassHuman{privateStringname;privateStringscho
4、ol;publicHuman(Stringname,Stringsex,intage){//初始化属性值}publicvoidcanEat(){}publicvoidbreath(){}}如何实现继承3-2子类自动继承父类的属性和方法,子类中可以定义特定的属性和方法publicclassHuman{privateStringname;//教员姓名privateStringsex;//所在中心publicHuman(StringmyName,StringmySex){//初始化属性值}publicvoidsayHello(){//方法的具体实现}}publicc
5、lassFatherextendsHuman{publicFather(StringmyName,StringmySex){super(myName,mySex);}publicvoidsayHello(){System.out.println(“你好,我是爸爸");super.sayHello();}}由于sayHello()方法与父类的实现有所不同,因此重写了该方法方法重写:子类和父类的方法具有相同的名称、参数列表、返回类型父类中的属性和方法可以被子类继承publicclassFatherextendsHuman{publicFather(Stringmy
6、Name,StringmySex){super(myName,mySex);}}如何实现继承3-3子类的构造方法中,通过super关键字调用父类的构造方法方法重写后,通过super关键字调用父类的方法publicclassFatherextendsHuman{publicvoidsayHello(){System.out.println(“你好,我是爸爸");super.sayHello();}}通过调用父类的构造方法,完成对属性值的初始化一切类的“祖先”——Object在Java中,所有的Java类都直接或间接地继承了java.lang.Object类pub
7、licclassMyObject{//…}publicclassMyObectextendsObject{//…}在Eclipse中调用MyObject对象的成员,会自动弹出继承自Object的所有方法4.6.1类和类的继承函数的覆盖和重载的区别4.6.1类和类的继承重载的情况下,子类的访问权限比父类要大。参看课本例4.15Man类:用于测试Man类的程序:为什么需要多态5-1在Woman/Man类的基础上,开发一个类用来判断,负责对Woman、Man中的方法进行判断:1、打招呼为什么需要多态5-2publicclassJudge{publicvoidjudg
8、e(Manman){man.sayHe
此文档下载收益归作者所有