Java学习第四天

本文深入讲解Java的封装、继承和多态三大特性,探讨其在现实世界中的应用,如商店与供货商的关系如何体现这些特性,以及如何通过多态解决同一行为的不同实现问题。

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

Java学习第四天

java的三大特性 :封装 继承 多态

  • 封装
    从现实世界抽象出具像物时,一个物体总是包含它的属性,并且能自己操作属性。比如商店,和存放在其中的商品。从商店购买商品时,商品就是它的属性,而提供货物给顾客就是它的一个方法。
    我们在编写类是,就是把成员变量和方法统一放到一个类中。
    因为在现实世界中,商店也要从供货商那里拿货,所以商店和供货商也是有一定的关系,
    而这种关系在java中是可以继承的。
  • 继承
    供货商同样有这商品的供销关系,所以商店可以继承供货商,换句话说,就是商店依赖于供货商。所以商店可以访问供货商的成员变量(商品)和方法(购买商品)。
  • 多态
    由于商店中的方法跟供销商不同,供销商售卖货物没有商店那么复杂,所以商店希望有自己的售卖方法,于是多态解决了这个问题。同样的行为,不同的方法实现。

多态的2种方式:
静态:重载(方法签名不同)
重载调用哪个方法 与参数的引用类型相关 和实际指向的类型无关。
如果没有完全的类型匹配,那么会根据继承关系向下找。
动态:覆盖原方法(方法签名一致,但方法体内部不同)
覆盖调用哪个方法,与实例指向的类型相关,也就是this自引用。

核心问题:就是调用哪个方法,运用哪些数据(this)是谁?

多态 到底调用哪个方法?
可以调用哪些方法,取决于引用类型。
具体调用哪个方法,取决于实例所属对象的类

  • 反射
    反射就是通过类的类,来访问各种类的成用变量和方法,无视访问修饰符的权限,就算你是protected也能访问。

  • 接口
    实现了接口的类,不算是多继承,因为接口没有成员变量,只有方法
    且方法只能用 public abstract 修饰。一个类可以实现多个接口,实现了接口的类可以把这个实例对象赋值给接口引用。

  • 抽象类
    它是接口和类的混合体。
    不可以被实例化
    被 abstract修饰,可以有抽象方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值