多态

一个对象有多种形态,我们称它是多态。

特点:把子类对象赋值给了父类变量,在运行时期会表现出子类的特征。

多态运行时,还是new的对象本身

只有方法才存在多态,字段不存在多态,字段前面对象是什么类型,就调用谁的,在编译的时候,就已经确定去调用谁的

作用

当把不同的子类对象都当作父类类型来看待,可以屏蔽不同子类对象之间的实现差异,从而写出通用的代码达到通用编程,以适应需求的不断变化。使用了多态以后只需要写一个方法就能达到相同的功能。

如果没有在子类当中找到对应的方法,会去父类里面找

如果多态的方法全是静态的,那么编译的时候就要确定调用的类型,所以以多态的方式调用静态的方法,自动会调用父类当中的方法。

类的强制类型转换

把父类对象赋值给子类型

Dog dog=(dog)anim;

用instanceof可以判断一个类是否是指定的类,如果是返回true,不是就返回false

代码块

在类中或方法中使用{}括起来的一段代码,就称它是一个代码块

1.局部代码块,直接定义在方法内部的代码块(一般是结合if,while,for来进行使用)

2.初始化代码块:直接定义在类中的代码块,初始化代码块在运行时,还是把它放在构造方法中的最上方(创建一个对象就会执行一次)

3静态代码块:在初始化代码块前面加上一个static在什么时候执行:在加载字节码的时候就会自动调用,在主方法之前执行的,只执行一次。因为字节码只编译一次(前提是要和main函数一个类中)静态代码块通常用来做一次性操作

在代码块当中定义的变量我们称是局部变量,在外面是没有办法使用的

组合关系

自己类当中的字段是一个类的类型

类什么时候去加载:当第一次使用该类对象的时候,去加载到jvm当中

只加载一次,下一次就在内存当中使用了

类的加载

当第一次创建该类对象的时候,加载到内存中,在加载时,会执行static

字段初始化

静态字段初始化,是在静态代码块当中初始化的

非静态的字段初始化,它是在构造器当中做的初始化的(构造器的最前面)

final

继承的弊端:破坏了封装,子类可以访问父类当中的实现细节,可以覆盖父类当中的方法

final 最终,可以保证数据的安全性

字段:不能再去修饰该字段

方法:子类就不能再去覆盖该方法

类:该类就不能再去被继承

如果final修饰的是一个基本数据类型,代表值不能修改了

如果final修饰的是一个引用数据类型,代表地址不能去修改了(string是个特例)

字段

final段是没有初始值的,必须要自己手动设置初始值

final修饰变量,就代表是一个常量,命令规则:所有字幕都大写 命名规则:所有常量都要大写

final可以在局部代码块使用

Last modification:April 22, 2022
如果觉得我的文章对你有用,请随意赞赏