面向对象2(三大特性)-第一阶段-第八天-2021-7-22

本文详细介绍了Java中的面向对象三大特性:封装、继承和多态。封装通过私有化属性并提供get/set方法实现数据访问控制。继承允许子类继承父类的属性和方法,节省代码,但不包括构造器。多态则是不同对象对同一消息的响应方式不同,表现为父类引用指向子类对象。Java中单继承和接口的使用确保了继承的特性。同时,Object类作为所有类的父类,提供了诸如equals和toString等基本方法。

面向对象的三大特性

封装、继承、多态

1. 封装

封装的作用就是将内部数据私有化,使外部不能随意访问

封装的实施:将类中的属性私有化(private)然后提供get和set方法

  1. set方法,就是将数据传入对象对应的属性
  2. get方法,就是获取对象所对应属性的数据

2. 继承

  1. 概念:继承就是形容一个类和另一个类之间的关系,
    如A类是一种B类那么:
    A类就叫做子类、派生类
    B类就叫做父类、超类、基类
  1. extends关键字来建立继承关系,
    在继承中父类就是对很多个子类相同特性的一个类
    例如
public class Student extends Person{}
  1. 继承的好处:能够节省大量的代码
    比如:存在两个类学生和老师,学生类中一般都会有姓名,年龄,性别,等属性,而老师里面也会有姓名,年龄,性别等方法,当出现这种情况的时候,我们就可以去定义一个人类,在人的类中同样定义姓名,性别,年龄。然后让学生和老师两个类去继承就能很好的减少代码量
  1. 子类从父类中继承了什么:
    子类在父类哪里继承到了它的所有属性和方法(除了构造器)
    虽然子类从父类哪里继承到了所有属性,但是由于父类的属性很有可能是私有化的,子类不能直接访问,但是能够通过get和set方法间接改变
    子类不会继承父类的构造方法
  1. 继承的内存解析
    在创建子类对象之前先创建父类对象,并且将父类对象作为整个子类对象的一部部分资源存在,我们可以认为任何一个子类的对象都包含了一个父类的对象,子类对象拥有比父类更多的资源
  1. 在子类的构造器中可以通过super关键字调用父类的构造器,通过调用父类的构造器,能够实现父类中参数的传递,简化代码。
  1. super关键字的两种使用
  • super.成员;成员包括了父类的属性和方法
  • super(形参列表);调用父类的构造器
    super关键字和this关键字非常相似,都是有两种作用,而this关键字是指当前的对象,super指的是该对象的父类
  1. 继承的两个特性,单继承、传递性
    java中没有多继承,但是能够通过接口的方式实现多继承的功能
  1. object类
    object类相对于所有类来说都是父类,不管是什么样的类都间接或者直接的继承了object类
    object类中提供了一些重要的方法,比如equals、toString等
    toString方法就是返回当前对象的信息,该方法一般重写,因为object类中提供的是该对象的类的全名和地址值,没有什么实际的作用

java四种访问修饰符

缺省修饰符就是default
在这里插入图片描述

3. 多态

  1. 概念:多个不同类型的对象在接收到同一个消息的时候自动表现不同的行为方式
  2. 向上转型:父类的引用指向子类的对象
    向下转型:子类对象的父类的引用通过强制类型转换为子类的引用
  3. 多态实现的条件
  • 有继承
  • 必须是父类的引用指向子类的对象
  • 子类必须重写父类中的方法
  1. 编译看左边(父类),运行看右边(子类)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值