封装、继承、多态

封装:就是把类中的方法或者属性用private声明,封装到一起。属性的调用和赋值通过get和set方法;方法的调用可以在类创建一个公共方法,通过公共方法来调用类中的私有方法,之后通过对象调用公共方法来间接调用私有方法。

好处:隐藏对象和属性的实现细节,仅对外公开接口,数据更加安全。

继承:把A类和B类的共有属性和方法提取出来,放到一个父类中。通过继承父类来实现对属性和方法的操作。当父类只有一个有参构造器时,子类也必须要有父类全部属性的构造器,通过super()来调用哪一个构造器。

好处:提高代码的复用性和扩展性

多态: 对象或方法的多种形态,是OOP的三大特征之一,是建立在封装和继承之上。

方法多态:重写和重载

对象多态:

1、编译类型和运行类型可以不一致,编译类型一开始就定义了,不能变化

2、运行类型可以变化,可以通过getClass()查看编译类型

3、编译类型看=左边,运行类型看=右边

父类的引用指向子类的对象

 

      

 输出结果为:

 

 

 

首先new Sub()先在堆中分配一个地址空间,假设为0x0011。里面有两个空间 count= 10,count = 20;sub指向0x0011,sub为编译类型,所以sub.count = 20,sub.display()先从本类开始找,所以输出20。Base base = sub,向上转型,编译类型为Base,运行类型还是Sub,base指向0x0011,成员看编译类型,所以base.count = 10,base.display则先从运行类型开始寻找,输出20

 

posted @   伤逝l  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示