- 1、本文档共73页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章封装、继承与多态讲述
第六章 封装、继承与多态 第六章 封装、继承与多态 技能目标: 通过本章的学习,理解封装、继承、多态的概念,掌握它们在Java中的实现。掌握抽象类与接口的用法,逐步掌握面向对象编程的方法。通过本章的学习,最终能达到通过面向对象技术编写Java程序。 知识目标: 理解封装、继承、多态的概念; 掌握实现继承的方式; 掌握通过方法重载和方法覆盖实现多态; 掌握super的用法; 了解抽象类与接口的使用; 了解内部类的用法。 任务:完善教务管理系统,输出教师的基本信息 6.1 类的继承 继承是面向对象的一种重要机制,该机制自动地为一个类提供来自另一个类的操作和数据,这使得程序员只需要在新类中定义已有类中没有的成分来建立新类。在面向对象的程序设计中,通过继承可以提高程序的抽象程度,使之更接近于人类的思维方式,同时也可以提高程序开发效率,减少维护的工作量。理解继承是理解面向对象程序设计所有方法的关键。 6.1.1 继承的概念 由一个已有的类定义一个新类,称为新类继承已有的类。继承是一种由已有的类创建新类的机制。利用继承,我们可以先创建一个共有属性和行为的一般类,根据一般类再创建具有特殊属性和行为的新类。新类继承一般类的属性和行为,并根据需要增加它自己的新的状态和行为。由继承而得到的类称为子类(派生类),被继承的类称为父类(超类)。 子类继承父类之后,就在父类和子类之间建立了联系,子类自动拥有父类的全部成员,包括成员变量和成员方法。子类可以更改父类的成员,以满足新的需求,子类也可以增加自己的成员,使类的功能得以扩充。但是,子类不能删除父类的成员。 6.1.1 继承的概念 类的继承性如图所示。 6.1.1 继承的概念 Java只支持单继承。在单继承方式下,父类与子类是一对多的关系,一个子类只有一个父类,而一个父类可以有多个子类。 6.1.1 继承的概念 类的继承性包括以下基本原则: (1)子类继承父类的成员变量,包括实例成员变量和类成员变量。 (2)子类继承除父类构造方法以外的成员方法,包括实例成员和类成员方法。 (3)子类不能删除父类成员。 (4)子类可以增加自己的成员变量和成员方法。 (5)子类可以重定义父类成员。 6.1.2 继承的定义 子类可以从父类那里继承所有非私有的属性和方法作为自己的成员。在定义子类时使用extends关键字指明其父类,就可以在两个类之间建立继承关系了。 定义子类的基本格式为: class 子类名 extends 父类名 { 类体 } 6.1.2 继承的定义 需要注意的是:如果没有extends,并不代表它没有父类,而是默认该类的父类是系统软件包中的java.lang.Object类。Java中的类都是Object类的子类,Java中的每个类都从Object类继承了成员方法,因而每个对象都可以调用Object类的equals()和toString()方法。 6.1.2 继承的定义 例6-1 定义一个教师类,含姓名、所在系两个成员变量和giveLession()、introduction() 两个成员方法。定义一个JavaTeacher类继承Teacher类,并定义自己的成员变量age和成员方法introAge()。 public class TestInherit1{ public static void main(String args[]){ JavaTeacher a=new JavaTeacher(25); a.setInfor(杰克,计算机工程系);// 调用父类的成员方法 a.introduction();// 调用父类的成员方法 a.introAge();// 调用自己的成员方法 a.giveLesson();// 调用父类的成员方法 } } 6.1.2 继承的定义 class Teacher { private String name;// 教师姓名 private String department;// 所在系 //对各属性赋予初始值 public void setInfor(String name,String department){ this.name=name; this.department=department; } //自我介绍 public void introduction() { System.out.println(大家好!我是+ department + 的 + name + .); } //授课方法 public void giveLesson(){ System.out.println(知识点讲解); System.out.
文档评论(0)