继承和多态

继承和多态
1.继承
*继承是面向对象非常重要的特点之一,用好继承能够使程序具有更好的可扩充性,减少程序的代码量
1)什么是继承
继承是一种由已有的类创建新类的机制。
*利用继承,我们可以先创建一个共有属性的一般类,根据该一般类再创建具有特殊属性的新类,新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为
*继承使用的关键字是extends
例:
Car类

Saloon_car类继承自Car类

Truck类继承自Car类

Car测试类

运行结果

2.方法覆盖
*不管是普通汽车,还是卡车和轿车,他们的运转都是一样的,结果均输出“汽车在奔跑”。
*卡车和轿车的运转应该是有自己的独立方式的,不应当和普通汽车保持一致。
*子类需要对父类的run方法加以改进,变成子类自己的run方法,这就需要在子类中重新编写run方法,覆盖父类的run方法,这种做法在Java中叫做方法的覆盖(Override,又称方法重写)。

重新定义轿车和卡车的行为

这就是方法的重写。

注意重载和重写的区别,重载既可以发生于一个类,也可以发生于子类与父类之间(子类继承父类方法,同时完成方法重载),而重写,则只能是子类重写父类方法.

3.多态
*多态就是同一对象引用不同的实例,调用相同的方法,产生不同的结果。
*继承的表现就是多态
同一对象引用不同实例

运行结果

由父类引用创建的对象,只能调用子类从父类继承的方法(当然包含重写的方法),不能调用自己扩展的方法。

就像我们说:豹子是动物(向上转型),也可说:豹子会奔跑(调用从父类继承的方法),而不能说:动物是豹子(向下转型),也不能说:动物会爬树(向上转型的对象不能调用子类对象扩展的方法)。

4.super关键字
*super 关键字是一个引用变量,用于引用直接父类对象。
*super 关键字的用法如下:super 可以用来引用直接父类的实例变量,super 可以用来调用直接父类方法,super () 可以用于调用直接父类构造函数。
*在初识类和对象的章节,提到了this关键字,
this关键字用于表示类的对象自身,在使用中的所有未指明调用者的属性和方法,其前面均由JVM自动加上this,表示调用者自身
 在某些时候,子类需要调用父类的某些方法
 除了调用父类同名方法外,super还广泛的运用于构造方法内。

5.Object类

Java世界中,任意一个类均直接或间接由一个类演绎而来,这个类就是Object类,Object 是类层次结构的根类,每个类都使用Object 作为超类。所以,每个类都具有Object类所定义的特征。

常用方法
6.final关键字
*通常情况下,为了扩充类的功能,允许类的继承。但在某些情况下,会禁止类的继承,此时就会用到final关键字。
*final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。
*final修饰类时,类不能被继承。
*final修饰方法时,方法不能被重写。
*final修饰属性时,这个属性的值是不能被修改的。
注意

对cat用final修饰后,可以修改cat的属性值,但是不能再修改cat对象的引用。这是因为修改了cat的属性值,但cat本身地址并未变化。
→总结
 Object是Java中所有其他类的父类
 使用extends关键字可继承父类产生一个新的子类
 子类可以拥有与父类同名,但功能不同的方法,即覆盖父类方法
 子类可通过super关键字获得父类的方法
 Final关键字可以限定对象、变量、方法、类,使他们不能被修改

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值