系列文章目录

例如:第四章 面向对象 :向上造型、重写


一、向上造型:

(1)超类型的引用指向派生类的对象.
//动物是动物
Animal o = new Animal();
//老虎是老虎
Tiger o = new Tiger();
//老虎是动物
Animal o = new Tiger();
//动物是老虎----语义不通
Tiger o = new Animal(); //编译错误

先建两个类:
class Animal{ //动物类
}
class Tiger extends Animal{ //老虎类---------继承要符合is a(是一个)的关系
}

(2)能点出来什么,看引用的类型-------这是规定,不需要理解
超类 派生类
Person p1 = new Student();
Person p2 = new Teacher();
Person p3 = new Doctor();
p1/p2/p3. 只能点出Person中的

超类 派生类
Animal o = new Tiger();
o. 只能点出Animal中的

面向对象 (4):向上造型、重写

代码如下(示例):
面向对象 (4):向上造型、重写
创建一个Person超类,student,teacher,Doctor三个派生类

面向对象 (4):向上造型、重写

二、方法的重写(Override):重新写、覆盖

1)发生在父子类中,方法名相同,参数列表相同,方法体不同
代码如下(示例):这是学生类,子类
面向对象 (4):向上造型、重写
代码如下(示例):这是超类,父类
面向对象 (4):向上造型、重写上面子类中的StuID是学生类所特有的属性, 要想输出学生类中的StuID的结果必须要重写方法,就是在学生类中添加一个与父类相同的方法,然后在方法体中加入需要输出的特殊属性就可以了

2)重写方法被调用时,看对象的类型—这是规定,不需要理解
代码如上图(示例):

3)重写遵循"两同两小一大"原则:-----------了解
3.1)两同:
3.1.1)方法名相同
3.1.2)参数列表相同
3.2)两小:
3.2.1)派生类方法的返回值类型小于或等于超类方法的
1)void时,必须相同
2)基本类型时,必须相同
3)引用类型时,小于或等于
3.2.2)派生类方法抛出的异常小于或等于超类方法的
3.3)一大:
3.3.1)派生类方法的访问权限大于或等于超类方法的
面向对象 (4):向上造型、重写

3.重写与重载的区别:
1)重写:
1.1)发生在父子类中,方法名相同,参数列表相同,方法体不同
必须是父子类中
1.2)遵循"运行期绑定",看对象的类型来调用方法

2)重载:
2.1)发生在同一类中,方法名相同,参数列表不同,方法体不同
2.2)遵循"编译期绑定",看参数/引用的类型来绑定方法
代码如下(示例):例一
面向对象 (4):向上造型、重写
代码如下(示例):例二
面向对象 (4):向上造型、重写

相关文章:

  • 2021-07-17
  • 2021-12-20
  • 2021-11-18
  • 2023-03-24
  • 2022-01-13
  • 2023-02-20
猜你喜欢
  • 2021-06-11
  • 2021-07-25
  • 2022-12-23
  • 2021-08-23
  • 2022-12-23
  • 2022-02-10
  • 2021-09-29
相关资源
相似解决方案