- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]04-Java继承与接口
Java继承与接口 主讲:朱强 E-mail:a1234514@163.com 博客:/networkcrazy 本讲目标 理解继承原理与机制及类继承的声明方法 掌握掌握成员变量的隐藏及方法的重写 掌握抽象类与抽象方法 掌握super关键字 掌握final关键字 理解多态的内涵及实现代码 掌握4种访问修饰符的区别 掌握接口声明及使用 4.1 子类与父类 继承是一种由已有的类创建新类的机制。 利用继承,可以先创建一个共有属性的一般类,根据该一般类再创建具有特殊属性的新类,新类继承一般类的状态(属性)和行为(功能),并根据需要增加它自己的新的状态和行为。 由继承而得到的类称为子类(派生类),被继承的类称为父类(基类或超类)。 Java不支持多重继承(子类只能有一个父类)。 继承 在类的声明中,通过使用关键字extends来创建一个类的子类。如: class Students extends People { …… } 如果一个类的声明中没有使用extends 关键字,这个类被系统默认为是Object的子类,Java中所有类都是Object类的直接子类或间接子类。Object 是包java.lang 中的类。 类有可以有两种重要的成员:成员变量和方法。子类的成员中有一部分是子类自己声明定义的,另一部分是从它的父类继承的。 所谓子类继承父类的成员变量作为自己的一个成员变量,就好象它们是在子类中直接定义一样,可以被子类中自己声明的任何实例方法直接使用。 所谓子类继承父类的方法作为子类中的一个方法,就好像它们是在子类中直接定义一样,可以被子类中自己声明的任何实例方法直接调用。 4.2.1 子类和父类在同一包中 如果子类和父类在同一个包中,那么,子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private 的方法作为自己的方法。 4.2.2 子类和父类不在同一包中 如果子类和父类不在同一个包中,那么,子类继承了父类的protected、public 成员变量做为子类的成员变量,并且继承了父类的protected、public方法为子类的方法,但不能继承父类的友好变量和友好方法。 提示:不用private,public protected修饰符的成员变量和方法被称为友好变量/方法 当用子类的构造方法创建一个子类的对象时,子类的构造方法总是先调用父类的某个构造方法,也就是说,如果子类的构造方法没有明显地指明使用父类的哪个构造方法,子类就调用父类的不带参数的构造方法。 对于子类可以从父类继承的成员变量,只要子类中声明的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量。 子类通过方法的重写可以隐藏继承的方法 ,方法重写是指:子类中定义一个方法,并且这个方法的名字、返回类型、参数个数和类型与从父类继承的方法完全相同。 final关键字可以修饰类、修饰变量和方法。 (1)final类不能被继承,即不能有子类。 (2) 如果一个变量被修饰为final的,就是常量,常量必须赋给初值,而且不能再发生变化。 (3)如果一个方法被修饰为final方法,则这个方法不能被重写。 abstract只能修饰类或方法。 用关键字abstract修饰的类或方法称为abstract类(抽象类)或abstract方法(抽象方法)。 抽象类定义形式: abstract class A { … } 抽象类有如下两个特点: 第一,abstract类中可以有abstract方法 和普通的类相比,abstract类可以有abstract方法,也可以有非抽象方法。对于abstract方法,只允许声明,不允许实现,而且不允许使用final修饰abstract方法。 第二, abstract类不能用new运算创建对象 对于abstract类,不能使用new运算符创建该类的对象,需产生其子类,由子类创建对象,如果一个类是abstract类的子类,它必须具体实现父类的abstract方法。 一个abstract类只关心它的子类是否具有某种功能,
文档评论(0)