学习java程序入门-面向对象之封装继承多态(下)

学习java程序入门-面向对象之封装继承多态(下)

ID:34641373

大小:26.12 KB

页数:11页

时间:2019-03-08

学习java程序入门-面向对象之封装继承多态(下)_第1页
学习java程序入门-面向对象之封装继承多态(下)_第2页
学习java程序入门-面向对象之封装继承多态(下)_第3页
学习java程序入门-面向对象之封装继承多态(下)_第4页
学习java程序入门-面向对象之封装继承多态(下)_第5页
资源描述:

《学习java程序入门-面向对象之封装继承多态(下)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、学习Java程序员入门-面向对象之封装,继承,多态(下) 上接:学习Java程序员入门-面向对象之封装,继承,多态(上) 五:再谈继承   继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。私有成员能继承,但是由于访问权限的控制,在子类中不能直接使用父类的私有成员。并且java中是单继承,一个子类只能有一个父类继承中的

2、构造方法     当生成子类对象时,Java默认首先调用父类的不带参数的构造方法,然后执行该构造方法,生成父类的对象。接下来,再去调用子类的构造方法,生成子类的对象。【要想生成子类的对象,首先需要生成父类的对象,没有父类对象就没有子类对象。比如说:没有父亲,就没有孩子】。     如果子类使用super()显式调用父类的某个构造方法,那么在执行的时候就会寻找与super()所对应的构造方法而不会再去寻找父类的不带参数的构造方法。与this一样,super也必须要作为构造方法的第一条执行语句,前面不能有其他可执行语句。       当两个方法形成重写关系时,可以在子类方法中通过super

3、.run()形式调用父类的run()方法,其中super.run()不必放在第一行语句,因此此时父类对象已经构造完毕,先调用父类的run()方法还是先调用子类的run()方法是根据程序的逻辑决定的。  方法的覆盖(重写) 重写的要求:子类覆盖方法和父类被覆盖方法的方法返回类型,方法名称,参数列表必须相同子类覆盖方法的访问权限必须大于等于父类的方法的访问权限方法覆盖只能存在于子类和父类之间子类覆盖方法不能比父类被覆盖方法抛出更多异常方法重写与方法重载之间的关系:重载发生在同一个类内部的两个或多个方法。重写发生在父类与子类之间。 final关键字在继承中的使用final可以用于以下四个地方

4、:定义变量,包括静态的和非静态的。 如果final修饰的是一个基本类型,就表示这个变量被赋予的值是不可变的,即它是个常量;如果final修饰的是一个对象,就表示这个变量被赋予的引用是不可变的,不可改变的只是这个变量所保存的引用,并不是这个引用所指向的对象,其实更贴切的表述final的含义的描述,那就是,如果一个变量或方法参数被final修饰,就表示它只能被赋值一次,但是JAVA虚拟机为变量设定的默认值不记作一次赋值。被final修饰的变量必须被初始化。初始化的方式有以下几种:1. 在定义的时候初始化。2. 在初始化块中初始化。3. 在类的构造器中初始化。4. 静态变量也可以在静态初始化

5、块中初始化。1) 定义方法。 当final用来定义一个方法时,它表示这个方法不可以被子类重写,但是它这不影响它被子类继承。说明:具有private访问权限的方法也可以增加final修饰,但是由于子类无法继承private方法,因此也无法重写它。编译器在处理private方法时,是按照final方法来对待的,这样可以提高该方法被调用时的效率。不过子类仍然可以定义同父类中的private方法具有同样结构的方法,但是这并不会产生重写的效果,而且它们之间也不存在必然联系。3)定义类。 由于final类不允许被继承,编译器在处理时把它的所有方法都当作final的,因此final类比普通类拥有更高

6、的效率。final的类的所有方法都不能被重写,但这并不表示final的类的属性(变量)值也是不可改变的,要想做到final类的属性值不可改变,必须给它增加final修饰。关于继承的几点注意:a) 父类有的,子类也有 b) 父类没有的,子类可以增加 c) 父类有的,子类可以改变 d) 构造方法不能被继承 e) 方法和属性可以被继承 f) 子类的构造方法隐式地调用父类的不带参数的构造方法 g) 当父类没有不带参数的构造方法时,子类需要使用super来显式地调用父类的构造方法,super指的是对父类的引用 h) super关键字必须是构造方法中的第一行语句。 六:然后议多态多态(Polymo

7、rphism):用我们通俗易懂的话来说就是子类就是父类(猫是动物,学生也是人),因此多态的意思就是:父类型的引用可以指向子类的对象。方法的重写、重载与动态连接构成多态性。Java之所以引入多态的概念,原因之一是它在类的继承问题上和C++不同,后者允许多继承,这确实给其带来的非常强大的功能,但是复杂的继承关系也给C++开发者带来了更大的麻烦,为了规避风险,Java只 允许单继承,派生类与基类间有IS-A的关系(即“猫”is a “动物”)。这样做

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。