(510)多态、内部类、package和import

文章介绍了Java中的多态性,包括向上造型和向下转型,以及如何使用instanceof进行类型检查。同时,讨论了内部类的概念,强调了它们对外部类的访问权限,并提到了匿名内部类的使用场景。此外,还涵盖了package和import在解决命名冲突和管理类之间的依赖关系中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

补充:

隐式的引用:

this:指代当前对象

super:指代当前对象的超类对象

外部类名.this:指代当前对象的外部类对象

一、多态

即多种形态

1、向上造型/自动类型转换:

1)、超类型的引用指向派生类的对象

2)、能点出来什么,看引用的类型

2、实际应用:

1)将不同的对象(狗、鱼、鸡)同一封装到一个超类数组(动物数组)中来访问,实现代码复用

2)将超类型作为参数或返回值类型,传递或返回派生类(Dog/Fish/Chick)对象,以扩大方法的应用范围,实现代码复用

3、向下转型/强制类型转换,成功的条件只有两种:

1)引用索指向的对象,就是该类型

2)引用所指向的对象,实现了该接口或继承了该类型

强转时若不符合如上条件,会发生classcastexception类型转换异常

建议:在强转之前先通过instanceof判断引用指向的对象是否是该类型

instanceof返回boolean结果,他为true的条件就是强转成功的条件

4、何时需要强转:

若想访问的属性/方法在超类中没有,则需要强制类型转换

二、内部类

1、类中套类,外面的称为外部类,里面的称为内部类

2、内部类通常只服务与外部类,对外不具备可见性

3、内部类对象通常在外部类中创建

内部类中可以直接访问外部类的成员

原因:在内部类中有个隐式的引用指向创建它的外部类对象

          隐式的引用:外部类名.this

何时用:

若A类只让B类用,并且A类还想访问B类的成员,可以设计为成员内部类

匿名内部类:

应用率高,重点掌握

何时用:

如果想创建一个派生类对象,并且对象只创建一次,可以设计为匿名内部类,大大简化代码

注意:匿名内部类中不能修改外面局部变量的值(默认是final的)

三、package和import

package

用途:声明包

作用:避免类的命名冲突

规定:同包中的类不能同名,不同包的类可以同名

类的全称:包名.类名。包名常常用层次结构

建议:包名所有字母都小写

import

用途:导入类

同包中的类可以直接访问,但是不同包中的类不能直接访问,若想访问:

1.类的全称,因太繁琐,所以不建议

2.先import导入类,                  在访问类,此为建议模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值