JAVA基础Day08

复习

  • 面向对象和面向过程的比较 - 面向对象基于面向过程的
  • 类是对象的概括,对象是类的实例
  • 构造方法用于创建对象 - 与类同名但是没有返回值类型
  • this关键字:在本类中用于表示本类的虚拟对象,可以通过this来调用本类中的属性和方法
  • 构造代码块:在创建对象的时候先于构造方法执行一次
  • 任何一门面向对象的语言,都包含三个特征:封装、继承、多态
  • 方法的重载:在同一个类中,存在方法名相同但是参数列表不同的方法

面向对象的特征

一、封装

  1. 封装包含了两块内容:类和方法的封装,属性的私有化
  2. 类的封装就是将属性和方法定义到一个类中;方法的封装实际上就是定义方法的过程 - 实现代码复用
  3. 属性的私有化:实际过程中,会将需要校验的属性来进行私有化,针对属性来根据需求提供对外的修改和获取属性的方法,可以在方法中对传入的参数值来进行校验 - 保证数据的准确性和安全性

二、继承

  1. 如果某一些类中存在相同的属性和方法,那么可以将这些属性和方法提取到一个新的类中,然后通过extends关键字让这些类继承新产生的类,此时就构成了继承关系 - 被继承的类称之为父类、超类(super-class),继承的类称之为子类、派生类
  2. 通过继承,子类可以使用父类中的部分属性和部分方法
  3. 练习:定义一个父类Student表示学生,包含3个子类:小学生(Pupil),初中生(Junior),高中生(Senior)。学生包含至少4个属性:姓名、性别、年龄、学号,都需要上课以及做作业。其中小学生没有自习,初中生需要上晚自习,高中生需要上早晚自习
  4. 调用子类构造函数的时候,如果没有指定,那么子类构造函数中默认会调用父类中的无参构造 - super()和this()不能共用
  5. 在Java中支持类和类之间的单继承 - 一个子类只能有一个父类,一个父类可以有子类
  6. 继承的特点:无论是单继承还是多继承,都能够实现代码复用,但是单继承的复用度不如多继承,然而多继承容易造成子类中方法的冲突
  7. super关键字:表示父类对象,可以通过super在子类中调用父类中的属性和方法

三、权限修饰符

  1. Java中提供了四种权限:public,protected,private和默认形式
  2. 权限修饰符的范围

 

本类中

子类中

同包类中

其他类中

public - 公共的

可以

可以

可以

可以

protected  - 受保护的

可以

可以

可以

不可以

默认形式

可以

同包子类可以

可以

不可以

private - 私有的

可以

不可以

不可以

不可以

四、多态

  1. 多态分为编译时多态和运行时多态。其中编译时多态包含了方法的重载,运行时多态包含了向上造型和方法的重写
  2. 向上造型:父类声明,子类实现 - 能用什么看父类,怎么执行看子类
  3. 方法的重写(override):在父子类中存在方法签名(方法名+参数列表)完全一样的方法,此时构成了方法的重写/覆盖
  4. 方法重写的原则 - 两等两小一大
    1. 方法签名要完全一致
    2. 如果返回值类型是基本类型或者void,那么在重写的时候要求返回值类型必须一致
    3. 子类在重写的时候,要求重写后的方法的权限修饰符的范围要大于等于原来的方法
    4. 如果返回值类型是引用类型,那么子类重写的方法的返回值类型是父类方法值类型的子类或者本身
    5. 在重写的时候,子类抛出的异常范围不能超过父类异常范围 

五、对象的内存结构

1.

 

 

2.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值