面向对象:封装性、继承性、多态性总结


一、封装性

封装性就是将对象内部的复杂性隐藏起来,只是对外部公开简单的接口,便于外界调用,从而提高系统的可扩展性、可维护性。通俗的说,就是把该隐藏的隐藏起来,该暴露的暴露出来。

1.针对属性的封装性

将类的属性设为私有的(private),并提供set或者get方法。此时,针对属性就体现了封装性。

2.针对方法的封装性

不对外暴露的私有方法

3.权限修饰符的大小关系

private < 缺省 < protected < public

4.具体的权限范围

在这里插入图片描述

二、继承性

1.继承性的好处

①、减少了代码的冗余,提高了代码的复用性
②、便于功能的扩展
③、为多态性的使用提供了前提

2.子类和父类的关系

①、一旦子类A继承了父类B以后,子类A中就获取了父类B中声明的所有属性和方法(特别的:父类中声明为private的属性或者方法,子类继承父类以后,仍然认为子类继承了父类中的私有结构,只是因为封装性的影响,使得子类不能直接调用父类的私有结果。)
②、子类继承父类以后,还可以声明自己特有的属性或者方法,用来实现功能的拓展。
③、格式:class A extends B

注意点:

①、一个类可以被多个类继承。
②、一个类只能有一个父类。
③、子类直接继承的父类为:直接父类、 间接继承的父类:间接父类(理解为爷爷类)。

三、多态性

1.多态性的理解

一个事物的多种形态

2.何为多态性

父类的引用指向子类的对象。
举例:

Person p = new Man();

这对Man来说也叫做向上转型

3.多态的使用

虚拟方法调用:有了对象的多态性之后,我们在编译期,只能调用父类中声明的方法,但是在运行期,我们实际执行的是子类重写父类的方法。(多态对属性不管用)

4.向下转型

有了对象的多态性以后,内存中实际上是加载了子类特有的属性和方法的,但是由于变量声明为父类类型,导致编译时,只能调用父类中声明的属性和方法。子类特有的属性和方法不能调用。如何才能调用子类特的属性和方法?使用向下转型。
向下转型后,就可以使用子类特有的方法和属性了。

5.instanceof关键字

在向下转型的过程中,有可能会出现 ClassCastException 的异常,所以在转型之前,使用 instanceof来对该类进行判断。
举例:

if(a instanceof A){// 判断对象a是否是类A的实例,如果是返回true 否则返回 false
A a = (A)a;//将对象a转为类A的对象
} 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值