Java面向对象基础
2024-01-09 06:16:56
面向对象
1)优点
易维护、易复用、易扩展,由于面向对象有封装、继承、多态的特性,可以设计出低耦合的系统,使系统更加灵活,更加易于维护。
2)缺点
性能比面向过程低。因为类在调用时需要实例化,开销比较大,消耗资源。
3)三大特性
- 封装:就是把客观事物封装成抽象的类,并且可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
- 继承:是指这样的一种能力,它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。
- 多态:是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。
注意:
实现多态有3个必要条件
1.继承
2.重写
3.向上转型(父类引用指向子类对象)——将子类对象看作是父类类型,这也是我们平时使用多态的形式,这种情况下,无法调用子类特有的功能。相反,向下转型就是将父类引用指向的子类对象再转回子类类型,这种转型有危险,因为是强制性的,一旦转向的类型与这个对象不匹配,就会报错java.lang.ClassCastException(类型转换异常,属于运行时异常)
4)多态成员访问的特点
- 成员变量
编译看左边(父类),运行看左边(父类)
一般使用情况很少,成员变量一般是私有的
- 成员方法
编译看左边(父类),运行看右边(子类),动态绑定
子类中如果对父类中的方法进行了重写,父类中的方法无论如何都无法被访问,这也是java动态绑定的结果
动态绑定会选择最优执行方法,只要子类重写了父类的方法,无论在什么地方调用,都会先找子类
- 静态方法
编译看左边(父类),运行看左边(父类)
文章来源:https://blog.csdn.net/weixin_52164430/article/details/135469220
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!