面向对象三大特征

一、封装

  1. 封装的理念是高内聚,低耦合
    “高内聚”就是类的内部数据操作细节自己完成,不允许外部干涉。
    “低耦合”是仅暴露少量的方法给外部使用,尽量方便外部调用。
  2. 封装的具体优点
    1)提高代码的安全性。
    2)提高代码的复用性。
    3)“高内聚”:封装细节,便于修改内部代码,提高可维护性。
    4)“低耦合”:简化外部调用,便于调用者使用,便于扩展和协作。
  3. Java的4种访问权限修饰符
    private:只能在同一个类中访问
    default:只能在同一个类以及同一个包中访问
    protected:只能在同一个类、同一个包以及子类(super调用)中访问
    public:所有类都可以访问
  4. 开发中封装的简单规则
    1)属性一般使用private访问权限,提供相应的get/set方法来访问相关属性,get/set方法通常是public修饰的,已提供对属性的赋值和读取操作,boolean变量的get方法时is开头的。
    2)方法:一些用于类辅助性的方法可以用private修饰,希望其他类调用的方法用public修饰。

二、继承

  1. 继承的两个主要作用:
    1)实现代码复用,更加容易实现类的扩展。
    2)方便建模。例如猫和狗类继承动物类。
  2. 方法的重写(覆盖)Override
    子类重写父类的方法,可以用自身行为替换父类行为(也就是子类方法替换父类方法)。重写是实现多态的必要条件。
    方法重写需要符合下面的三个特点:
    1)方法名、形参列表相同。
    2)返回值类型和声明异常类型,子类需要小于等于父类。
    3)访问权限,子类需要大于等于父类。
    方法的重载overload(与继承无关)
    说白了就是两个不同的方法,只是名字相同而已。
    1)不同的含义:形参类型、形参个数、形参顺序不同
    2)只有返回值不同不构成方法的重载(此时编译报错)
    3)只有形参的名称不同,不构成方法的重载(此时编译报错)
    即需要形参类型、形参个数和形参顺序不同才能实现方法的重载。
  3. final关键字的作用
    1)修饰变量:被final修饰的变量不可改变。一旦赋了初值,就不能被重新赋值。
    2)修饰方法:被final修饰的方法,不能被子类重写。但是可以被重载。
    3)修饰类:被final修饰的类,不能被继承。
  4. 组合:将“父类对象”作为“子类”的属性。从而也能实现代码的复用。即使用组合的方式也可以实现继承的功能。
    组合比较灵活,继承只有一个父类,而组合可以有多个属性。
    is-a关系:使用继承。例如学生是人。
    has-a关系:使用组合。即它是某个东西的一部分,例如人有一个心脏。
  5. super关键字
    1)super“可以看做”是直接父类对象的引用。可通过super来访问父类中被子类覆盖的方法或属性。
    2)使用super调用普通方法,语句没有位置限制,可以在子类中随意调用。
    3)在一个类中,若是构造方法的第一行没有调用super(…)或this(…);那么Java默认都会调用super(),含义是调用父类的无参构造。
  6. 继承树的追溯(例如方法重写)
    1)先从当前类中查找
    2)再依次向上追溯每个父类查找
    3)如果没有找到,则出现编译错误
    4)直到找到,则终止这个过程
  7. 构造方法调用顺序
    1)构造方法第一行总是super(…)来调用父类对应的构造方法。
    2)流程:先向上追溯到Object类,再依次向下执行类的初始化块和构造方法,直到执行到当前子类为止。
    3)静态初始化块比构造方法优先级更高;即先向上追溯到Object类,再依次向下执行类的静态初始化块,直到执行到当前子类为止;再向上追溯到Object类,再依次向下执行类的构造方法,直到执行到当前子类为止。
    例如:父类静态初始化块->子类静态初始化块->父类构造方法->子类构造方法。

三、多态

  1. 多态是方法的多态,不是属性的多态(多态与属性无关)。
  2. 多态的存在有三个必要条件:继承,方法重写,父类引用指向子类对象。
  3. 父类引用指向子类对象后,用该父类引用调用子类重写方法,此时多态就出现了。

例如父类 f = new 子类(); f.method();
此时调用的method()只能是重写的方法。

  1. 向上转型,父类引用指向子类对象的过程称为向上转型,属于自动类型转换。
  2. 向下转型,因为向上转型后的父类引用变量只能调用它编译类型的方法,不能调用它运行时类型的方法,这时就需要进行类型的强制转换,称为向下转型。
    类型的判断instanceof
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值