封装性
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.多态性只适用于方法,不适用于属性(编译运行都看左边)
重载是静态绑定(方法调用之前,就已经确定要调用的方法),重写是动态绑定(方法调用时才会确定要调用的具体方法)
向下转型:使用强制类型转换符
图片.png1.使用强转时,可能出现ClassCastException异常,使用instanceof关键字,判断对象是否相同,返回true,则向下转型
2.若a instanceof A为true,则a instanceof B也为true;其中B是A的父类
instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例
网友评论