自动转型和强制转型
自动转型与强制转型
自动转型
定义
在继承的基础上,子类中的对象类型会自动转变为父类中的对象类型
格式
父类类型 对象名 = new 子类类型();
实例:
定义了一个父类
public class People{
//声明人物的属性
private String name;
//声明人物的血量
private int xueliang;
//定义一个获取姓名属性值的方法
public void setName(String name){
//将参name的值赋给name
this.name=name;
}
//定义一个获取姓xueliang属性值的方法
public void setXueLiang(int xueliang){
//将参xueliang的值赋给xueliang
this.xueliang=xueliang;
}
//定义一个返回姓名属性的方法
public String getName(){
//返回姓名
return name;
}
//定义一个返回血量属性的方法
public int getXueLiang(){
//返回血量
return xueliang;
}
}
定义了一个子类
public class JianSheng extends People{
//声明剑圣的姓名属性
private String name;
//声明人物的血量
private int xueliang;
//定义一个获取属性值的方法
public void setName(String name,int xueliang){
//将参name的值赋给name
this.name=name;
//将参数xueliang的值赋给xueliang
this.xueliang = xueliang
}
}
测试函数
public class Main{
public static void main(String[] args){
//父类类型变量名来引用子类对象
People po = new JianSheng;
//调用方法
po.setName("jiansheng",120);
Systerm.out.print("名字是"+po.getName+",血量是"+po.getXueLiang);
}
输出结果:
名字是jiansheng,血量是120
}
由以上我们可以看出:
如果子类中重写类父类中的方法,那么优先调用子类中重写的方法,否则就调用父类中的方法;
注意:
自动转型只能是子类转型为父类,反之不行
自动转型的对象子类只能调用父类中的方法,不能调用子类中自己的方法
强制转型:
定义:
把一个类型强制转化成另一种类型
格式:
旧类型 旧对象名 = new 旧类型();
新的类型 新对象名 = (新的类型)旧对象名;