- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
05_继承资料
定义学生类 class Student{ private String name; private int age; public void eat(){ System.out.println(吃饭行为); } public void study(){ System.out.println(good good study); } } 定义工人类 class Worker{ private String name; private int age; public void eat(){ System.out.println(吃饭行为); } public void work(){ System.out.println(good good work); } } 定义老师类 class Teacher{ private String name; private int age; public void eat(){ System.out.println(吃饭方法); } public void teach(){ System.out.println(good good teach); } } 出现的问题 大量定义相同的属相,方法,代码冗余! 解决办法: 继承定义 在面向对象语言中,继承一词来源自生活,又超越了生活。先看定义:在一个类基础上定义一个新类叫继承,原有的类叫父类,新生成的类叫子类。这个容易理解,你生了个孩子不管儿子还是女儿都是继承,那你就是父类,你孩子就是子类。 我们把面向对象编程叫OOP,还有一门知识叫OOAD(面向对象的分析与设计),在OOAD中,继承又叫派生,父类又叫超类,子类叫派生类。 如何抽取 class A{ void demo1(); } class B{ void demo1(); void demo2(); } class C{ void demo1(); void demo3(); } 将如何抽取? 继承体系 在现实中孩子可能有两个父类,如父亲和母亲,就是说一个类继承自多个类,这是多继承,比如C++就是这样的。但Java中只有单继承,也就是说,在Java中一个类只能继承自一个父类。这里大家也不要认为C++中有多继承就多么了不起,就好像现实中如果某个人有两个父亲也不一定是什么愉快的事情,多继承带来的麻烦并不比它带来的方便少,因为它使类的体系结构变的混乱,这也是我们称C++为最不纯粹面向对象语言的一个原因。(在很多资料上说C++是最不纯粹的面向对象语言,其中一个原因就是因为C++万恶的多继承,还有一个重要原因是因为C++中保留了指针,指针的保留提高了C++运行速度效率,但也增加了程序的复杂性,学习难度。) Java虽然不允许一个子类有多个父类,但允许一个父类有多个子类。通俗的说就是作为父类的你可以有多个孩子。这个于C++是一样的。还有我们说父子类的关系是相对的,比如说你对于你老爸是子类,但对于你儿子就是父类了。还有把你爸叫做你的直接父类,你爷爷叫做你的间接父类,把你儿子叫做你的直接子类,你孙子叫做你的间接子类。 像上面老子儿子的继承关系是比较明确的,还有很多抽象的继承关系,比如我们说老虎是动物,狮子也是动物,那么老虎类与狮子类继承之动物类;学生是人,老师也是人,那学生类与老师类又继承之人类;小轿车是汽车,大货车也是汽车,小轿车类大货车类继承之汽车类。大家看到继承关系是通过“子类是父类”确认的。 实例验证不能多继承 class A{ void show(){System.out.println(a);} } class B{ void show(){System.out.println(b);} } class C extends A,B{} class Test{ public static void main(String[] args){ C c=new C(); c.show();//此时将会如何打印? } } 如何使用继承体系功能 首先查阅父类体系功能。父类提供了基本共性属性及方法。 再次根据子类特有的属性及方法创建子类对象。 继承特点 继承的特点是个重点,也是难点,也是我们代码中使用较多的,因为现在大家所学的知识有限,不能多的放在项目代码中讲解,在这里只能尽量使用通俗易懂的案例给大家说明,同时要求大家要把所有概念性的东西背诵,然后我们后期项目代码中使用了这里知识再反复强调,加深记忆。 特点一:子类拥有父类的属性和方法. 特点二:子类可以有自己新的属性和方法. 特点三:子类可以重写(覆盖)父类的方法. 子类拥有父类属性和方法 现实生活中我们有一句俗语叫做“有个好脑子,不如有个好老子”,我们看这句话意思,无非
文档评论(0)