面向对象高级(多态,Object和包装类)
多态
多态就是对象的多种表现形式。
多态的体现
对象的多态性,从概念上非常好理解,在类中有子类和父类之分,子类就是父类的一种形态,对象多态性就从此而来。
多态的使用
-
向上转型:将子类实例变为父类实例
格式:父类 父类对象 = 子类实例;
-
向下转型:将父类实例变为子类实例
格式:子类 子类对象 = (子类)父类实例;
instanceof
**作用:**判断某个对象是否是指定类的实例,可以使用instanceof关键字
格式:实例化对象 instanceof 类 //此操作返回boolean类型的数据
Object类
Object类是所有类的父类(基类),如果一个类没有明确的继承某一个具体的类,则将默认继承Object类。
例如我们定义一个类:
public class Demo{
}
其实它被使用时是这样的:
public class Demo extends Object{
}
Object的多态
使用Object可以接收任意的引用数据类型。
重写toString
此方法的目标作用:返回对象的字符串表示形式。
Object的toString方法作用:返回对象的内存地址。
重写equals
此方法的目标作用:指示某个其他对象是否“等于”此对象。
Object的equals方法:实现了对象上最具区别的可能等价关系;也就是说,对于任何非空引用值x和y,当且仅当x和y引用同一对象( x == y具有值true )时,此方法返回true。
包装类
基本数据类型 | 包装类 |
---|---|
int | Integer |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
byte | Byte |
short | Short |
long | Long |
- Number:Integer、Short、Long、Double、Float、Byte都是Number的子类表示是一个数字。
- Object:Character、Boolean都是Object的直接子类。
字符串转换
可以将一个字符串变为指定的基本数据类型,此点一般在接收输入数据上使用较多。
在Integer类中提供了以下的操作方法:
public static int parseInt(String s) //将String变为int型数据
在Float类中提供了以下的操作方法:
public static float parseFloat(String s) //将String变为Float
在Boolean 类中提供了以下操作方法:
public static boolean parseBoolean(String s) //将String变为boolean
....
....
可变参数
在JDK1.5之后提供了新的功能,可以根据需要自动传入任意个数的参数。
返回值类型 方法名称(数据类型…参数名称){
//参数在方法内部,以数组的形式来接收
}
注意:可变参数只能出现在参数列表的最后。