JavaDay06--面向对象

自学JavaDay06

面向对象编程

封装

  • 高内聚,低耦合

    高内聚:类的内部数据操作细节自己完成,不允许外部干涉

    低耦合:仅暴露少量的方法给外部使用

    该露的露,该藏的藏

  • 数据的隐藏

    应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏

  • 属性私有,get/set

继承

  • 本质:对某一批类的抽象,从而实现对现实世界更好的建模

  • extends关键字:意思是“扩展”。子类是父类的扩展。

  • 在Java中,所有类都默认直接或间接继承Object类

  • 在Java中,只有单继承,没有多继承

  • super

    1. 调用父类的构造方法,必须在构造方法的第一个

    2. super必须只能出现在子类的方法或者构造方法的第一行

    3. super和this不能同时调用构造方法

    4. Vs this

      • 代表对象不同

        this:本身调用者这个对象

        super:代表父类对象的应用

      • 前提

        this:没有继承也可以使用

        super:只能在继承条件才可以使用

      • 构造方法

        this(); 本类的构造

        super(); 父类的构造

  • 重写

    需要有继承关系,子类重写父类的方法

    1. 方法名必须相同
    2. 参数列表必须相同
    3. 方法体不同
    4. 修饰符:范围可以扩大但不能缩小--public>protected>default>private
    5. 抛出的异常:范围可以缩小,但不能扩大

    为什么需要重写

    1. 父类的功能,子类不一定需要,或者不一定满足

    alt + insert:override

多态

  • 同一方法可以根据发送对象的不同而采用多种不同的行为方式

  • 注意事项

    1. 多态是方法的多态,属性没有多态
  1. 继承关系,方法需要重写,父类引用指向子类对象!-- Father f1 = new Son();

  2. 不适用方法

    1. static方法:属于类,不属于实例
  3. final常量
    3. private方法

  • instanceof关键字,类型转换
    1. 父类引用指向子类的对象
    2. 把子类转换为父类,向上转型,有可能丢失子类的一些方法
    3. 把父类转换为子类,向下转型,强制类型转换
    4. 方便方法的调用,减少重复的代码

抽象:编程思想!

static关键字

  • 静态变量,静态方法,和类一起加载,且只加载一次
  • 静态导入包
package com.oop.demo08;

//静态导入包
import static java.lang.Math.PI;
import static java.lang.Math.random;

public class Test {

    public static void main(String[] args) {

        System.out.println(random());
        System.out.println(PI);
    }
}

抽象类

约束

  1. 抽象类不能被new出来,只能靠子类实现
  2. 抽象类中可以写普通方法,抽象方法必须存在于抽象类中
posted on 2020-12-31 20:00  来点番茄酱  阅读(61)  评论(0)    收藏  举报