面试题:说说你对面向对象的理解

面向对象有三种特性:封装,继承,多态

封装:将对象的信息隐藏到对象内部,外部程序不能直接调用对象的内部信息。外部程序可以通过该类提供的方法间接调用对象内部信息,提高了代码的可维护性。

案例:比如说将对象的属性私有化,外部程序不能直接调用对象的属性,可以通过类提供的get(),set()方法间接调用对象的属性。

继承:继承是实现代码复用的重要方式,是通过  extends 关键字实现类的继承,实现继承的类称为子类,被继承的类称为父类。

注意:① 子类可以继承父类中非 private 的属性和方法

           ② 子类拥有自己的属性和方法,即子类对父类进行扩展。

           ③ 子类可以重写父类中的方法

多态:继承是实现多态的基础。多态的现象是:编译时和运行时类型不一致。

           也就是“编译时看左边,运行时看右边”。

弊端:“编译时”,只能调用父类中声明的方法,不能调用子类中声明的方法。

优点:“运行时”,看“子类”,当子类重写了父类中的方法,则执行时一定执行子类中重写的方法体。变量引用子类的对象不同,执行的方法不同,实现了动态绑定,提高了代码的可维护性和可扩展性。

你可能感兴趣的:(java,面试)