欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

面向对象的三大特性:封装、继承、多态

程序员文章站 2022-06-11 22:34:38
...

封装:

  1. 封装的定义:

将一个类的成员属性全部私有化(private),通过get/set方法来获取/更改成员属性的值。

  1. private关键字:

说到私有化,就不得不提一下“private”这个关键字了,它可以用来修饰成员属性,也可以用来修饰成员方法,它会在内存中的方法区里面开辟一个静态存储区,将“private”修饰的成员方法或是成员属性放在其中,被多个类共享。

面向对象的三大特性:封装、继承、多态

3.this关键字:

封装的时候,难免会遇见形参名字与成员属性名字相同的情况,这个时候我们就需要用到了“this”关键字了,它的作用是当“局部变量”覆盖了“成员变量”的时候,你需要使用“成员变量”,就需要使用“this”关键字了。(继承的话,如果本类中没有这个成员属性,“this”将调用父类的成员属性,如果父类没有,则将会调用父父类…以此类推。)
其次,this在构造方法中调用另外一个构造方法时,必须放在构造方法的第一行!

继承:

1.父类的一些成员方法和成员属性可以提供给子类使用。

2.使用关键字:extends

3.子类可以继承父类的private修饰的成员属性,但不能访问他的值。
子类不能继承父类的构造方法,但创建子类的对象时,会调用子类和父类的构造方法。

4.super关键字:

super关键字的作用在于他可以访问父类的成员方法、成员属性和构造方法。
“super”用于子类成员方法名、成员属性名覆盖了父类的成员方法名、成员属性名,这个时候你想调用父类的成员方法名、成员属性名的时候。
访问形式:super.成员方法名/成员属性名
访问父类构造方法:super([父类形参名]);【他会根据形参类型、形参个数去寻找父类的构造方法,如果子类的构造方法没有写super关键字,那么编译器会在构造方的第一行自动生成一个super(),】

5.重写:

使用的注解:@Override
重写就是在子类中写一个和父类方法名字相同的方法,通过@Override注解,这样就可以改变父类方法的功能,实现子类特有的功能,重写完成后,如果你还想使用父类的方法,可以通过【super.父类方法名([形参类型]);】去调用父类的方法。

多态:

1.多态就是”一种事物”的“多种形态”。

多态访问的都是父类成员,只有当子类重写父类方法时,才会访问子类的方法。

------弊端:只能访问父类成员,不能访问子类成员(没重写的情况下);
------优点:利于程序扩展,利于程序维护。