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

目录

封装

1.封装概念 

2.优点:

3.封装的实现步骤

4.set和get方法在idea中的生成方法一

5.set和get方法在idea中的生成方法二

继承

1.继承概念

2.继承的好处

 3.方法的重写

4. 重载Overload 与重写Override的区别

5. this与super的区别

多态

1.多态的概念

2 . 特点

3. 多态的好处

4. 多态中属性的使用

5.向上转型和向下转型


封装

1.封装概念 

  • 封装把一个对象的属性利用provied关键字私有化,同时提供一些可以被外界访问的属性的方法,
  • 封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
  • 适当的封装可以让程式码更容易理解与维护,也加强了程序的安全性。

 

2.优点:

  • 1. 良好的封装能够减少耦合。
  • 2. 隐藏类内部的结构的细节,方便修改和实现。。
  • 3. 可以对成员变量进行更精确的控制。
  • 4. 只能通过特定的方法进行访问

3.封装的实现步骤

  • 1. 一般用private修饰属性
  • 2. 对每个属性提供对外的公共方法访问方法,通常情况下,这些方法被称为getter和setter方法。

4.set和get方法在idea中的生成方法一

  • 1、首先创建一个类
  • 2、在类中鼠标右键选择Generate
  • 3、选择需要生成set和get方法的字段
  • 5、点击完成自动生成代码

5.set和get方法在idea中的生成方法二

  • 利用注解的方式,当后面接触了框架后
  • 导入lombok的jar包,在idea中下载lombok插件,
  • 再在类上放@data注解,框架底层会自动创建get.set等一系列方法

继承

1.继承概念


继承是类与类的一种关系,是一种“is a”的关系。比如“student”继承“person”,这里person类是student类的父类,student类是person类的子类.语法规则,只要在子类类名后加上extends关键字并写上需要继承的父类就可以了.

2.继承的好处

子类的定义可以增加新的数据或新的功能,也可以用父类的功能(除了private修饰的属性不能用),但不能选择性地继承父类。通过使用继承我们能够非常方便地复用以前的代码。

 3.方法的重写

子类如果对继承的父类的方法不满意,可以自己编写继承的方法,这种方式就称为方法的重写。当调用方法时会优先调用子类的方法.

重写(override)的原则:两同两小一大原则

  1. 方法名相同.
  2. 参数类型相同
  3. 子类返回类型小于等于父类方法返回类型,
  4. 子类抛出异常小于等于父类方法抛出异常,
  5. 子类访问权限大于等于父类方法访问权限。

4. 重载Overload 与重写Override的区别

  1. 重载:在一个类中的现象:同一个类中,存在方法名相同,参数列表不同的方法
  2. 重写:是指建立了继承关系以后,子类对父类的方法不满意,可以重写,遵循两同两小一大原则
  3. 重载的意义:是为了外界调用方法时方便,不管传入什么样的参数,都可以匹配到对应的同名方法
  4. 重写的意义:在不修改源码的情况下,进行功能的修改与拓展

5. this与super的区别

  • this: 代表本类对象的引用
  • super:代表父类存储空间的标识,可以理解成父类对象的引用
  • this关键字指向调用该方法的对象,一般我们是在当前类中使用this关键字.所以我们常说this代表本类对象的引用
  • super的使用前提是继承,没有父子类关系,就没有super
  • this调用构造方法或者super调用构造方法,都必须出现在构造方法的第一行
  • 如果父类没有无参构造,需要手动在子类构造方法的第一行调用其他的含参构造
  • 如果子类重写了父类的方法以后,可以使用super.方法名(参数列表)来调用

多态

1.多态的概念

可以把不同的子类对象都当作父类来看,这样可以写出通用的代码,做出通用的编程,统一调用标准。

2 . 特点

  • 多态的前提1:是继承
  • 多态的前提2:要有方法的重写
  • 父类引用指向子类对象,如:Animal a = new Cat();
  • 多态中,编译看左边,运行看右边

3. 多态的好处

  • 多态可以让我们不用关心某个对象到底具体是什么类型,就可以使用该对象的某些方法
  • 提高了程序的可扩展性和可维护性

4. 多态中属性的使用

  • 前提:多态对象把自己看做是父类类型
  • 成员变量: 使用的是父类的
  • 成员方法: 由于存在重写现象,所以使用的是子类的
  • 静态成员: 随着类的加载而加载,谁调用就返回谁的
     

5.向上转型和向下转型

  • 在继承过程中就存在着多态的应用。存在着两种转型方式,分别是:向上转型和向下转型。
  • 向上转型:可以把不同的子类对象都当作父类来看,进而屏蔽不同子类对象之间的差异,写出通用的代码.
  • 父类的引用指向子类对象,向上转型时,子类对象当成父类对象,只能调用父类的功能,如果子类重写了父类中声明过的方法,方法体执行的就是子类重过后的功能。但是此时对象是把自己看做是父类类型的,所以其他资源使用的还是父类型的。
  • 向下转型:子类的引用的指向子类对象,过程中必须要采取到强制转型。
  • 其实,相当于创建了一个子类对象一样,可以用父类的,也可以用自己的
  • 向下转型时,是为了方便使用子类的特殊方法,也就是说当子类方法做了功能拓展,就可以直接使用子类功能。
     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值