nullJava面向对象程序设计Java面向对象程序设计第4章 类的特性本章主要内容本章主要内容理解父类与子类的继承关系
理解继承中发生的方法重写
重写Object类的toString( )方法
使用super关键字访问父类成员
访问修饰符的权限
理解抽象类
理解内部类
继承现象继承现象父 类 子类 类的继承关系类的继承关系演示继承类的继承关系类的继承关系Mammal类
属性:legsNumber、height、weight、color
方法:breed( )等Dog类
属性:legNumber等、hasTail
方法: breed( )等、keepHouse( )等Cat类
属性:legNumber等
方法: breed( )等、climb( )等继承的概念继承的概念继承是体现了类与类之间的关系,在现有类的基础上建立新类的处理过程称为继承。
直接或间接被继承的类都是父类,子类继承父类的属性和行为。父类也称超类或基类,子类也称派生类。
子类复用父类的代码,同时也允许子类增加自己特有的属性和方法。这样使得程序结构的设计更加清晰,达到既减少程序的编码量,同时降低程序维护的工作量。
父类的私有属性与方法不传递给子类。
Java不允许出现多重继承。方法重写方法重写方法重写(overriding)是指在子类中存在与父类完全相同的方法,则发生方法的覆盖,即子类可以改写父类方法所实现的功能。
自然界中,同一种行为具有不同实现方式的现象很多。如:石墨与金刚石。演示方法重写方法重写方法重写发生在父类与子类中
方法名称相同
参数列表相同
返回类型相同
方法实现不同
方法访问权限不能缩小,如:父类中被重写的方法访问权限为public,子类重写方法时不能缩小为private、protected或默认。
子类重写方法不能抛出新的异常。Object类 —— 一切类的父类Object类 —— 一切类的父类Object类存在与java.lang包中,因此当定义一个新类而不指明其父类时,该类默认继承Object类。
Object类常用方法:
boolean equals(Object obj) :指示其他某个对象是否与此对象“相等”。
String toString( ) :返回该对象的字符串表示。
定义实体类时,通常要重写上述两个方法。演示重写Object类的方法继承中发生方法重写对构造方法的影响继承中发生方法重写对构造方法的影响每个类都会有自己的构造方法,即使没有显示定义,系统也会提供一个默认的无参构造方法。
构造方法名称与类名同名,因此父类与子类的构造方法名称必然不同,不会发生方法重写。演示继承时的构造方法super关键字super关键字执行创建一个子类实例时,
Cat cat = new Cat( );
首先,调用执行父类的无参构造方法;然后调用执行子类的无参构造方法。原因是子类构造方法隐式了第一句代码super( ),即:
public Cat() {
super( );
} //运行子类的构造方法之前首先调用父类的构造方法
super 关键字始终指向当前类的父类,可以使用该关键字显式调用父类的有参构造方法或成员方法。演示继承时的构造方法访问修饰符的权限访问修饰符的权限private:访问权限仅限于类内。
public:对外完全公开。
protected:同包或异包子类可以访问。
无修饰符:限于同包能访问。演示无修饰符和protected成员内部类成员内部类构造一个内部类对象必须先构造一个外部类对象,然后通过外部类对象的引用“.new”构造内部类对象。示例如下:
Outer outer = new Outer( );
Outer.Inner in = outer.new Inner();
在内部类中可以访问外部类的成员变量:
Outer.this.name
成员内部类中不能有静态的变量。演示成员内部类局部内部类局部内部类定义在外部类方法中的内部类称为局部内部类,不能使用访问修饰符。但是可以使用abstract和final修饰符
局部内部类的范围是在该方法内部。
可以访问外部类的属性;还可以访问外部类的有效的局部变量,但是要求这个局部变量必须是final的。演示局部内部类内部类的作用内部类的作用内部类可以访问外部类的私有(private)成员。
接口是公开的,把接口的实现类作为内部类隐藏起来,强制用户通过接口来访问接口的实现类,强制达到弱耦合性。
配合接口实现多继承,这是使用内部类的主要原因。匿名内部类匿名内部类匿名内部类是一种特殊的局部内部类。
用来继承一个类或者实现一个接口,而且只会创建这个内部类的一个对象。
可以出现在方法的返回类型中,也可以出现在方法的参数中。
不能定义构造方法。演示匿名内部类本节小结本节小结理解父类与子类的继承关系
理解继承中发生的方法重写
重写Object类的toString( )方法
使用super关键字访问父类成员
访问修饰符的权限
理解抽象类
理解内部类
本文档为【Java语言程序设计 第四章】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。