Java特性随便看看(多态)
一、引用类型
1、Java的数据类型
Java有8种基本数据类型:
4种常用的:boolean、char、double、int
另外的4种:byte、float、long、short
对于基本类型是直接留出内存保存值,而其他所有的数据类型都是引用类型。
所谓引用类型,即开始创建时只保存了它对某类型的引用。必须初始化之后才可以引用
2、引用类型的相等性
举例说明:
Dog dog1 = new Dog()
Dog dog2 = Dog1
Dog dog3 = new Dog()
dog1 == dog2 正确
dog2 == dog3 错误
一般会创建equals()方法,然后通过dog2.equals(dog3)来对比每一个值是否相同
3、equals()方法
public boolean equals(Object that){
if (this == that){
return true;
}
if (that == null){
reture false;
}
if (getClass() != that.getClass()){
return false;
}
Die thatDie = (Die)that;
return topFace == thatDie.topFace;
}
注:1、首先把实例this==that的直接返回,不用再进去比较多个值
2、that=null时直接返回,不要去尝试追随null
3、比较类名,若不是同一各类就直接返回false
二、多态
1、多态类型对象:
Object it;
it = new Dog();
it = new double[10];
以上代码都是正确的,Object类型的变量可以保存一个指向广泛事物的引用。
Object是一个典型的多态类型(polymorphic type)
2、基本类型包装器
Object可以保存任何对象和数组,但是不能保存基本类型,所以需要包装器类。
针对8个基本类型的包装器分别为:
Boolean、Byte、Character、Double、Float、Integer、Long、Short
理论上需要用以下方法进行转换:
Object k = new Integer(23);
int n = ((Integer)k).intValue();
但是在1.5版本以后,可以直接省略为:
Object k = 5;
int n = (Integer)number;
三、数组
1、数组的创建步骤
① 声明变量:int[] nums;
② 分配空间:nums = new int[4];
③ 初始化:int[0] = 1;
int[] nums = new int[]{0,1,2,3,4}
2、多维数组
int[][] rows;
rows = new int[2][3];
上例是由3个“含有4个值的数组”组成的数组,也可以理解为3行4列
要取单独一行:int[] middleRow = row[1];
要单独取一列:row[0] = new int[4];
四、接口
接口跟类是很相似的,区别在于接口即没有字段也没有方法体,只指明了类的行为方式。接口的作用简单一点就是:接口是用来标记类的,不同的类属于不同的接口(通过向上转型),管理接口比管理各种各样的类方便多了,接口体现了抽象的观点,什么是抽象?抽象就是“抽去像的部分”。
实现接口:
public class FieldDomino implements Domino{
...
}
五、重载
接口、Object类型、数组类型,都是多态类型。
不同种类的多态性就是重载
,即同名的方法,而传入参数个数或种类不同
不能重载某个类型包含的另一个类型参数,这样输入某个参数,两种都成立。
重载的作用在于可以减少我们必须记住的方法名称的数量!