java基础(十二)继承和多态

本文详细介绍了Java中的继承和多态概念。继承允许子类重定义父类的属性和方法,多态则允许父类引用指向子类对象。动态绑定在运行时决定调用哪个重写的方法。此外,还探讨了对象转换、instanceof操作符以及Object类的equals方法的使用。最后,介绍了如何使用final关键字防止继承和方法重写。
摘要由CSDN通过智能技术生成

1.1 基本概念(简单,自己理解)

继承:在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能。

多态:使用父类对象的地方都可以使用子类的对象。多态意味着父类型的变量可以引用子类型的对象。

 

1.2 动态绑定

方法可以在沿着继承链的多个类中实现。JVM决定运行时调用哪个方法。

问题引出:已知GeometricObject()是Object的子类。toString方法在Object中定义,在GeometricObject内重写。

Object o = new GeometricObject();
System.out.println(o.toString);

求问,这里的o调用的哪个toString()呢?

 

为了回答这个问题,首先介绍两个术语:声明类型和实际类型

一个变量必须被声明为某种类型,变量的这个类型被称为它的声明类型,这里o的声明类型就是Object。

一个引用类型变量可以是一个null值或者是一个对声明类型实例(实例可以使用声明类型或它的子类型的构造方法创建)的引用。变量的实际类型是被变量引用的对象的实际类。这里o的实际类型是GeometricObject,o调用哪个toString()方法是由o的实际类型决定的,这称为动态绑定。会不停的向父类上面找相应的方法,直到在某一层找到这个方法(从实际类型子类到父类顺序找)进行调用。在编译时,编译器会根据参数类型、参数个数和参数顺序找到匹配的方法。

 

1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值