谈谈你对面向对象的理解
Java中的面向对象的三个特征就是继承、封装、多态。
封装其实就是对一个对象的行为和属性隐藏起来,封装目的就是隐藏,防止被其他对象所破坏。
继承就是子类继承父类,子类将拥有父类的所有属性。
多态表示一个对象可以表示出多种状态,即对象的状态是可以在子类和父类之间相互转换。同时多态存在的三个条件,继承、重写、父类的引用指向子类。
举个简单的栗子:小水滴,晨露,雨滴,水雾,本质上都是水,我们认为他们都继承了水;小水滴可以转换成水,这就是向上转型(即向父类靠近),现在小水滴就表现出了2种状态,一种是水的状态,一种是小水滴的状态;如果说水要转换成晨露,就是向下转型(向子类靠近),但是下转型是有风险的,晨露是水,难道水就一定只有晨露这个状态么?显然不可能,水还可以转为雨滴,水雾等.....,通常向下转型是要做类型判断,使用关键字 instanceof判断;
封装和继承是为了使代码具有复用性。多态是为了使用接口的复用,增加代码的可移植性、健壮性和灵活性。
作者:BearBrick0
出处:https://www.cnblogs.com/bearbrick0/p/15819440.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通