添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

对于存在继承关系的强制类型转换:

子类转换为父类属于向上塑型,可以直接转换

父类转换为子类属于向下塑型,需要强制类型转换,但是不一定成功。成功的条件是这个父类是经过子类向上塑型转换来的

即 :Father father=new Son(); Son son=(Son)father;

对于不存在继承关系的强制类型转换,一般都是失败的(如果不写转换方法的话)

子类可转为父类,父类不可以转为子类(如果不用强制类型转换)

1.  子类和父类含有相同的成员变量的时候,访问的是父类的成员变量

2.  子类和父类含有相同的成员方法是,访问的是子类的成员方法

3.  子类和父类含有相同的静态函数和静态方法时,访问的是父类的。

4.  父类不能访问子类特有成员和方法(强制类型转换除外)

也就是说,只有在访问成员方法的时候,才会表现出多态。

对象多态时:

1.成员变量:(不涉及覆盖)
编译时: 参考引用变量所属的类中是否有调用的成员变量, 有, 编译通过,没有,编译失败。
运行时: 参考引用变量所属的类中是否有调用的成员变量, 并运行该类所属中的成员变量。
简单的说:编译和运行都参考等号的左边。
2.成员函数(非静态):
编译时:参考引用变量所属的类中是否有调用的成员变量, 有, 编译通过, 没有,编译失败:
运行时:参考的是对象所属的类中是否有调用的函数。
简单的说:编译看左边, 运行看右边。
3.静态函数, 变量:
编译和运行都是参考左边参数类型! 其实静态方法不存在多态, 静态方法是属于类的,我们说的是对象的多态!静态方法直接用类名调用就好了, 没必要创建对象! 静态的方法只能被静态的方法所覆盖! java中的锁类型
java中的锁不同的分类,只是从不同的角度标准去分类的。一把锁也有可能同时占有多个标准,符合多种分类,比如ReentrantLock既是可中断锁,又是可重入锁。根据分类标准,我们把锁分为以下七个大类别。 一、偏向锁、轻量级锁、重量级锁 二、可重入锁、非可重入锁 三、共享锁、独占锁 Spring Boot | 集成MapStruct实现不同类型Java对象间的自动转换
MapStruct是一个开源的代码生成器,极大地简化了从一种Java对象到另一种Java对象的转换过程。 MapStruct常用注解