Loading

谈谈你对面向对象的理解

Java中的面向对象的三个特征就是继承、封装、多态。

封装其实就是对一个对象的行为和属性隐藏起来,封装目的就是隐藏,防止被其他对象所破坏。

继承就是子类继承父类,子类将拥有父类的所有属性。

多态表示一个对象可以表示出多种状态,即对象的状态是可以在子类和父类之间相互转换。同时多态存在的三个条件,继承、重写、父类的引用指向子类。

举个简单的栗子:小水滴,晨露,雨滴,水雾,本质上都是水,我们认为他们都继承了水;小水滴可以转换成水,这就是向上转型(即向父类靠近),现在小水滴就表现出了2种状态,一种是水的状态,一种是小水滴的状态;如果说水要转换成晨露,就是向下转型(向子类靠近),但是下转型是有风险的,晨露是水,难道水就一定只有晨露这个状态么?显然不可能,水还可以转为雨滴,水雾等.....,通常向下转型是要做类型判断,使用关键字 instanceof判断;

封装和继承是为了使代码具有复用性。多态是为了使用接口的复用,增加代码的可移植性、健壮性和灵活性。

posted @ 2022-01-18 19:30  BearBrick0  阅读(119)  评论(0编辑  收藏  举报