面向对象进阶(总结)

面向对象进阶

继承

1、作用:提高代码复用性,子类可以直接使用父类的非私有成员

2、格式:public static 子类名 extends 父类名{。。。}

3、使用继承前提:子类和父类要具备is a 的关系(包含关系)

4、注意事项:1.Java只能单继承,不能多继承,但是可以多层继承

5.继承后成员的访问特点:

  • 1、成员变量的访问特点

    • 1、就近原则
    • 2、如果子类局部有,优先访问局部的
    • 3、如果局部没有,找子类成员位置
    • 4、如果子类成员位置没有,找父类成员位置
    • 5、如果找不到,报错
  • 2、成员方法的访问特点

    • 1、就近原则
    • 2、子类有,就访问子类的
    • 3、子类没有,就访问父类的
    • 4、父类没有就报错
  • 3、如何访问父类中和子类同名的成员:

    • 1、默认访问子类自己的

    • 2、非要访问子类自己,使用super成员名字

      • super.属性名
      • super.方法名(参数)
    • 3、super写在哪个类,就代表哪个类的父类

6、方法重写:

  • 1、方法重写的作用注意事项

    • 子类重写的方法名和参数列表和父类相同
    • 重写的方法访问权限要大于等于父类
  • 2、利用@Override检测方法重写的正确性

7、方法重写的应用

  • 1、Object类的toString()方法
  • 2、如果父类的方法不能完全满足子类的需求,就可以让子类重写方法

8、继承后构造器的访问

  • 1、调用子类任何构造,都会默认先调用父类空参构造
  • 2、父类如果没有空参构造,就需要手动使用super(参数),调用父类有参构造。调用父类构造,需要放在子类构造器的第一行

9、this和super

  • 1、super(参数)访问父类构造器
  • 2、this(参数)访问本类构造器:放在构造器的第一行
  • 3、this(参数)和super(参数)的位置:构造器的第一行

2.final

1、final关键字的特点

  • 1、修饰类:不能被继承

  • 2、修饰方法:不能被子类重写

  • 3、修饰变量(也叫常量,命名规则:单词全部大写,下划线隔开):

    • 1、修饰基础数据类型,变量存储的数据值不能改变
    • 2、修饰引用数据类型,变量存储的地址值不能改变

3、static

1、static修饰变量的用法

  • 1、静态变量的定义和调用格式

    • 定义格式:static变量类型 变量名;
    • 调用格式:推荐类名调用,类名.属性名;
  • 2、static内存原理:随着类的加载而加载,所有对象共享

2、static修饰方法的用法:

  • 1、静态方法的定义和调用格式:

    • 权限修饰符static返回值类型 方法名(参数列表){…}
    • 调用格式:推荐类名调用,类名.方法名(参数);
  • 2、静态方法的访问特点

    • 静态成员只能访问静态成员

3、静态代码块

  • 1、静态代码块的格式和执行特点

    • 格式:static{…}
    • 位置:类中方法外
    • 特点:类加载的时候自动执行,只执行一次
  • 2、构造代码块的格式和执行特点

    • 格式:{…}类中方法外
    • 特点:构造方法执行之前执行,构造方法执行几次,他就执行几次

    面向对象进阶

1、工具类和制作帮助文档

1、math类的作用

  • 1、提供了一些处理数学基本运算的功能

2、Math类的常用方法

  • abs方法:

    • 求绝对值
  • max:最大值

  • ceil:对一个小数向上取整

  • floor:对一个小数向下取整

  • pow:求一个数的几次幂

3、Math类的构造器:

  • Math类的构造器被私有

2、包和导包&权限修饰符

1、包和导包

  • 1、包的定义格式

    • package 包名;
    • 类文件的第一行
  • 2、导包格式

    • import 包名.类名;

2、修饰权限符

  • private——缺省——protected——public

3、抽象类

1、格式

  • public abstract class 类名{
    权限修饰符 abstract 返回值类型 方法名(形参列表);}

2、基本使用:

  • 1、抽象类不能创建对象,所以他是作为父类,让子类继承使用
  • 2、抽象类的作用:可以给子类提供拥有制定的功能,但是不要求具体实现,有一定的灵活性

3、特点:

  • 不能创建对象
  • 一个类里面有的,抽象类都有

4、抽象类的应用:

  • 1、作文模板
  • 2、把需要给子类直接使用的模板定义成实例方法,并且用final修饰
  • 3、需要子类自己制定的功能,定义成抽象方法
  • 4、具备一个功能,可以协调模板和抽象方法,组成一个合理的逻辑

4、接口:

1、概述:

  • 1、格式:

    • public interface 接口名{
      静态常量;抽象方法//JDK8之前
      }
  • 2、基本使用

    • 让类去实现的,一个类实现接口,要重写他的所有抽象方法
  • 3、特点:

    • 1、接口没有构造器
    • 2、就扣不能实例化
    • 3、接口可以多继承,也可以多实现

2、接口和类的区别

  • 1、类与类的关系

    • 继承关系,只有单继承,所以抽象类只能单继承
  • 2、类与接口的关系:

    • 多实现,一个类可以实现多个接口,所以接口的拓展性比抽象类强
  • 3、接口和接口的关系:

    • 多继承

3、JDK8接口新增的方法:

  • 1、默认方法:

    • 用public default
    • 接口的实现类对象调用
  • 2、静态方法

    • 用public static 修饰
    • 接口名调用
  • 3、私有方法

    • 用privite修饰
    • 只能在接口内部调用

5、多态

1、多态概述

  • 1、什么是多态

    • 同种事物,调用同一个功能,呈现出不同的状态
  • 2、多态的表现形式

    • 有继承或者实现的关系
    • 有方法的重写
    • 重要:有父类引用指向子类对象/有接口引用指向实现类对象

2、多态的好处与弊端:

  • 1、多态的好处:

    • 应用在方法的形参上,可以提高一个方法的扩展性
  • 2、多态的弊端

    • 多态下不能使用子类的特有功能

3、多态的转型

  • 1、转型格式

    • 子类类名 变量名=(子类类名)被强转的对象;
  • 2、instanceof 关键字

    • 判断左边的对象是否是右边的类型,是返回true,否则返回false
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值