JAVA面向对象 第七章 继承和多态

 一、继承

继承是面向对象的三大特性之一,继承可以解决编程中代码冗余的问题,是实现代码重用的重要手段之一。继承是软件可以重用性的一种表现,新类可以在不增加自身代码的情况下,通过从现有的类中继承其属性和方法。来充实自身,这种现象或行为就称为继承。使用继承可以对相同的代码实现重用,提高工作效率。

java中只支持单继承,即每个类只能有一个直接父类。

继承的语法格式:

[访问修饰符]class<SubClass>extends<SuperClass>{

}

1.使用继承和重写实现部门类及子类

(1)使用super关键字调用父类成员

通过super访问父类成员的语法格式:

访问父类构造方法:super(参数)

访问父类属性/方法:super.<父类属性/方法>

2.实例化子类对象

在java中,一个类的构造方法在两种情况下总是会被执行。

(1)创建该类的对象(实例化)

(2)创建该类的子类的对象(子类的实例化)

子类在实例化时,会首先执行其父类的构造方法,然后才执行子类的构造方法。

子类继承父类时构造方法的调用规则有:

(1)如果子类的构造方法中没有通过super显示调用父类的有参构造方法,也没有通过this显式调用自身的其他构造方法,则系统会默认先调用父类的无参构造方法。在这种情况下,是否写   “super();”  语句,效果是一样的。

(2)如果子类的构造方法中通过super显式地调用了父类的有参构造方法,那么将执行父类相应的构造方法,而不执行父类无参构造方法。

(3)  如果子类的构造方法中通过this显式地调用了自身的其他构造方法,在相应构造方法中遵循以上两条规则。

3.Object类

Object类是所有类的父类。在java中,所有的java类都直接或间接的继承了java.lang.Object类。Object是所有java类的祖先。

                                               Object类的部分方法

方法说明
toString()返回当前对象本身的有关信息,返回字符串对象
equals()比较两个对象是否是同一个对象,若是,返回true
clone()生成当前对象的一个副本,并返回
hashCode()返回该对象的哈希代码值
getClass()获取当前对象所属的类信息,返回Class对象

4.方法重写

方法重写的要求

(1)重写方法的被重写方法必须具有相同的方法名

(2)重写方法和被重写方法必须具有相同的参数列表

(3)重写方法的返回值类型必须和被重写方法的返回值类型相同或是其子类。

(4)重载方法不能缩小被重写方法的访问权限

 二、多态

1.认识多态

多态是指在一个特定类型的变量可以引用不同类型的对象,并且能自动的调用应用的对象的方法。

2.向上转型

子类向父类的转换称为向上转型。

语法格式:

<父类型><引用变量>=new<子类型>();

规则:

(1)将一个父类的引用指向一个子类对象称为向上转型,系统会自动进行类型转换。

(2)此时通过父类引用变量调用的方法是子类覆盖或继承了父类的方法。

(3)此时通过父类引用变量无法调用子类特有的方法。

3.向下转型

将一个指向子类对象的父类引用赋给一个子类的引用,机将父类类型转换为子类类型,称为向下转型。

语法格式:

<子类型><引用变量名>=(<子类型>)<父类型的引用变量>;

4.instanceof运算符

在java中提供了instanceof运算符来进行类型的判断。

多态的优势

(1)可替换性:多态对已存在的代码具有可替换性。

(2)可扩充性:多态对代码具有可扩充性,增加新的子类不影响已存在类的多态性,继承性,以及其他特性的运行和操作。

(3)接口性:多态是父类向子类提供了一个共同接口,由子类来具体实现。

(4)灵活性:多态在应用中体现了灵活多样的操作,提高了使用效率。

(5)简化性:多态简化了应用软件的代码编写的修改过程,尤其在处理大量对象的运算操作时,这个特点尤为突出和重要。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值