面向对象的三大特性,学会了你还担心“对象“吗?

封装(Encapsulation)

什么是封装

将某些东西进行隐藏,然后提供相应的方法获取
在这里插入图片描述

封装的设计思想

通俗来讲,就是把该隐藏的隐藏起来,该暴露的暴露出来,这就是封装的设计思想。
在这里插入图片描述
像这样我们对一个类中的属性添加private修饰符,将属性设置为私有的,外界在对这个属性访问就受到了限制,对于一些重要的信息我们就要用到封装,这样外部就不能随便的修改了。

我们对属性设置了封装,那么怎么来对属性进行操作呢???
在实际开发中,方法一般会写set,get方法,来设置和获取封装了的属性。
在这里插入图片描述这样,我们就可以通过set,get方法来对封装的对象属性进行操作。
在这里插入图片描述
对封装的属性,是不能直接输出的,这样,我们就是对数据进行了一种保护,这就是面向对象封装的特点。
在这里插入图片描述

继承(Interitance)

什么是继承
Java继承是面向对象的最显著的特征,多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。
在这里插入图片描述像上图中的人类(Person)就是父类,又叫做超类或者基类,下面的学生类(Students)教师类(Teacher)子类,又叫做派生类

继承有什么好处

  • 提高代码的复用性,父类定义的内容,子类可以直接拿过来用就可以了,不用代码上反复重复定义了
  • 让类与类之间产生了关系,是多态的前提。

继承的特点

Java中只支持单继承和多重继承,不支持多继承。
在这里插入图片描述
在这里插入图片描述

权限修饰符

类修饰符:两种:默认(default),public
属性、方法修饰符:四种:private,默认(default),protected,public

一般属性:用private修饰 ,方法:用public修饰
在这里插入图片描述

方法的重写

发生在子类和父类中,当子类对父类提供的方法不满意的时候,要对父类的方法进行重写。

重写有严格的格式要求:
子类的方法名字和父类必须一致,参数列表(个数,类型,顺序)也要一致。
在这里插入图片描述
重写和重载的区别

重载:在同一个类中,当方法名相同,形参列表不同的时候 多个方法构成了重载
重写:在不同的类中,子类对父类提供的方法不满意的时候,要对父类的方法进行重写。
在这里插入图片描述

super关键字

super:指的是父类的
super:可以修饰属性,可以修饰方法

  • 在子类中,可以通过super.属性super.方法的方式,显示的去调用父类提供的属性和方法

  • 在特殊情况下,当子类和父类的属性重名时,你要想使用父类的属性,必须加上修饰符super.,只能通过super.属性来调用

  • 在特殊情况下,当子类和父类的方法重名时,你要想使用父类的方法,必须加上修饰符super.,只能通过super.方法来调用

super:可以修饰构造器
super() -->作用:调用父类的空构造器,只是我们一般都省略不写(所有构造器的第一行默认情况下都有super(),但是一旦你的构造器中显示的使用super调用了父类构造器,那么这个super()就不会给你默认分配了。如果构造器中没有显示的调用父类构造器的话,那么第一行都有super(),可以省略不写)
在构造器中,super调用父类构造器和this调用子类构造器只能存在一个,两者不能共存
在这里插入图片描述

final关键字

修饰变量:final修饰的成员变量是一个常量,变量的值不可以被改变,final修饰成员变量,必须初始化,书写规范:所有字母都大写
在这里插入图片描述修饰方法:final修饰方法,那么这个方法不能被该类重写
在这里插入图片描述
修饰类:final修饰类,该类不可以被继承,一旦一个类被final修饰,那么里面的方法也没有必要用final修饰了(final可以省略不写)
在这里插入图片描述

Object类

所有类都直接或间接的继承自Object类,Object类是所有Java类的根基类。也就意味着所有的Java对象都拥有Object类的属性和方法。如果在类的声明中未使用extends关键字指明其父类,则默认继承Object类。
在这里插入图片描述

toString()方法

Object类的toString()的作用
在这里插入图片描述
现在,使用toString()方法的时候,打印出来的东西“不好看”,可读性不好,我们想知道对象的具体属性内容,就需要对toString()进行重写

未重写toString()方法:
在这里插入图片描述
重写toString()方法:
在这里插入图片描述
重写后输出的内容:
在这里插入图片描述

equals()方法

equals作用:这个方法提供了对对象的内容是否相等的一个比较方式,对象的内容指的就是属性。
父类Object提供的equals就是在比较==地址,没有实际的意义,我们一般不会直接使用父类提供的方法,而是和toString()方法一样,在子类中对这个方法进行重写。
在这里插入图片描述
IDEA快捷键:alt + Insert

多态(Polymorphism)

多态的定义

多态性是对象多种表现形式的体现。
多态是同一个行为具有多个不同表现形式或形态的能力。
在这里插入图片描述
多态的优点

  • 消除类型之间的耦合关系
  • 可替换性
  • 可扩展性
  • 接口性
  • 灵活性
  • 简化性

多态存在的三个必要条件

继承
在这里插入图片描述
重写
在这里插入图片描述
父类引用指向子类对象
在这里插入图片描述

向上转型

在这里插入图片描述

向下转型

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47383392/article/details/124217191