美文网首页
面向对象2

面向对象2

作者: vv_64ce | 来源:发表于2020-04-08 22:54 被阅读0次

    封装性

    1.高内聚,低耦合:
    高内聚:类内部数据操作细节不允许外部干涉
    低耦合:对外暴露少量的方法
    2.修饰类:只能使用public和缺省

    构造器(或构造方法):创建对象、初始化对象属性

    1.没有显示定义类的构造器,则系统默认提供一个空参构造器
    2.一个类中的多个构造器彼此构成重载
    3.显示定义类的构造器后,系统就不再提供默认的空参构造器
    4.一个类中,至少一个构造器

    属性赋值的先后顺序(123只执行一次,4可以反复执行)

    1.默认初始化
    2.显示初始化
    3.构造器中初始化
    4.通过“对象.方法”或“对象.属性”的方式赋值

    this

    1.修饰:属性、方法、构造器
    2.表示当前对象:在类方法中,可以使用“this.属性”或“this.方法”调用当前对象的属性和方法;通常情况下this省略,当出现方法形参和类属性重名时,必须显示引用“this.变量”,表明此变量是属性而非形参

    继承性

    Java只支持单继承和多层继承

    重写

    对子类从父类继承过来的方法进行改造,也称为重置、覆盖
    1.子类权限可以大于父类,但子类不能重写父类的private方法
    2.重写的方法是同名同参
    3.父类返回值是void,子类也是void;父类是基本数据类型,子类也必须是相同的基本数据类型;父类是A类型,子类可以A类型或A类型的子类
    4.子类抛出的异常不大于父类的异常
    5.子父类中的同名同参方法要么都声明为非static(考虑重写);要么都为static(不是重写,因为static方法是属于类的)

    super关键字

    1.父类的
    2.调用属性和方法:当子类重写父类的方法后,要在子类中调用父类中被重写的方法,必须使用“super.方法”
    3.调用构造器:super必须在子类构造器首行;类的构造器中,this和super只能选一个

    子类对象实例化过程

    1.从结果看:继承性
    子类继承父类后,就获取了父类中声明的属性或方法;创建子类的对象,在堆空间中,就会加载所有父类中声明的属性
    2.从过程看:
    子类构造器创建子类对象时,会加载完所有父类结构,但自始自终都只是创建了一个new的子类对象。

    多态性

    1.一个事物的多种形态
    2.对象的多态性,即父类的引用指向子类的对象(或子类的对象赋给父类)
    3.多态的使用,编译期,只能调用父类中声明的方法,但运行时,实际执行的是子类重写父类的方法(编译看左,运行看右)
    4.使用前提:类的继承关系;方法的重写
    5.多态性只适用于方法,不适用于属性(编译运行都看左边)

    重载是静态绑定(方法调用之前,就已经确定要调用的方法),重写是动态绑定(方法调用时才会确定要调用的具体方法)

    向下转型:使用强制类型转换符

    图片.png

    1.使用强转时,可能出现ClassCastException异常,使用instanceof关键字,判断对象是否相同,返回true,则向下转型
    2.若a instanceof A为true,则a instanceof B也为true;其中B是A的父类
    instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例

    相关文章

      网友评论

          本文标题:面向对象2

          本文链接:https://www.haomeiwen.com/subject/uxbtmhtx.html