理解OOP三大特征:封装 继承 多态

一、OOP三大特征之封装
1.什么是封装?
使用private修饰类的成员变量和方法,使得只能在本类中使用和修改这些成员变量和方法,类外如果想要访问需要通过接口来实现。
好处是类的实现对类外不可见比较安全,而对类的调用者来说不需要知道类的实现细节,直接调用公有方法,降低了代码管理的复杂度。

2.this关键字
代表当前对象的引用,①可以使用this()调用当前类的构造方法;②this.属性名 调用当前类的属性;③this.方法名() 调用当前类的成员方法。

注意:new一个对象需要先在堆上开辟内存,然后调用构造方法,而在调用构造方法时就使用了this,所以this不能代表对象。

3.重载(Overload)
发生在同一个类当中。当满足以下条件:①方法名称相同;②参数列表不同;③返回值类型不作要求 就称为发生了重载。

注意:构造方法可以发生重载。

二、OOP三大特征之继承
1.什么是继承?
当两个类之间是 is a 的关系时,可以使用继承。继承的优点是提高代码的复用。通常使用extends关键字来表示继承。子类继承了父类除了构造方法以外的所有。子类也称派生类,父类也称基类/超类。
当两个类之间是 has a 的关系时,可以使用组合。

2.注意:①在Java中使用extends关键字表示的继承只能继承一个类。
②父类的私有属性和私有方法只能在本类访问,子类不能访问。
子类在构造的时候要先帮助父类构造(在子类的构造方法里使用super关键字调用父类的构造方法)

3.super关键字的使用:
super代表父类对象的引用。①super()可以调用父类的构造方法;②super.属性名 可以调用父类的属性;③super.方法名()可以调用父类的方法。

三、OOP三大特征之多态
1.什么是多态?
在发生重写时,父类引用引用子类对象,同时使用父类引用调用子类的覆盖方法时发生了运行时绑定,多次发生的运行时绑定就叫多态。也称为同一个引用的多种表现形态。

2.重写/覆写(Override)
发生在子类和父类之间,当满足以下条件:①方法名称相同;②参数列表相同;③返回值类型相同时就发生了重写。

3.向上转型
父类引用引用子类对象。发生向上转型的时机:①直接赋值;②传参;③返回值.
这个引用只能调用父类的属性和方法,不能调用子类独有的属性和方法。

4.运行时绑定
发生运行时绑定的前提是:发生了重写,父类引用引用子类对象,然后使用父类引用调用子类的同名覆盖方法
运行时绑定:使用父类引用调用子类的同名覆盖方法在编译时调用的是父类的方法,而在运行时调用的是子类的方法这称为运行时绑定。

注意:①static/final修饰的方法不能发生重写。
②被重写的方法的访问修饰限定符不能是私有的。
③重写的方法的访问权限要大于父类中方法的访问权限。
②当发生向上转型时,父类引用只能引用父类的属性,不能引用子类的属性。
③在构造方法当中也会发生运行时绑定。

5.向下转型
把父类的引用赋值给子类,向下转型是不安全的。

6.instanceof关键字
用来比较对象是否是指定类型。

比较封装 继承 多态:
①封装:对于代码的调用者来说不需要知道类的实现细节,只需要调用公有的方法,降低了代码管理的复杂度。
②继承:代码可以进行复用,减少冗余代码的编写。
③多态:进一步的封装,对于代码的调用者来说不需要知道该类的类型,只需要知道这个对象具有某个方法即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面向对象编程(Object-Oriented Programming,简称OOP)是一种编程思想,它通过将数据和操作数据的方法组织在一起,以对象的形式来描述现实世界中的事物。面向对象编程的四个基本概念是封装继承多态和接口。 1. 封装(Encapsulation):封装是将数据和操作数据的方法封装在一起,形成一个独立的实体。这样可以隐藏内部的实现细节,只暴露对外提供的接口,提高代码的可维护性和重用性。通过封装,对象对外部只暴露必要的信息,同时可以对内部实现进行修改,而不会影响外部的使用。 2. 继承(Inheritance):继承是指一个类(子类)可以从另一个类(父类)继承属性和方法。子类可以复用父类的代码,并且可以在其基础上进行扩展或修改。继承可以实现代码的重用,同时也能够建立类之间的关系,形成类的层次结构。 3. 多态(Polymorphism):多态是指同一个方法可以根据不同的对象产生不同的行为。多态通过继承和方法重写来实现,可以提高代码的灵活性和可扩展性。通过多态,可以在不改变方法的情况下,根据对象的实际类型来动态调用不同的方法实现。 4. 接口(Interface):接口定义了一组方法的规范,实现了接口的类必须实现接口中定义的方法。接口可以用来实现类之间的解耦和增加代码的可扩展性。通过接口,可以定义类之间的约定,使得不同的类可以进行交互和通信。 这些概念是面向对象编程的基础,它们可以帮助开发者组织和管理复杂的代码,提高代码的可读性、可维护性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值