java多态
多态是具有表现多种形态的能力的特征;
更专业的说法:同一个实现接口,使用不同的实例而执行不同的操作;
比如打印机,分为彩色打印机和黑白打印机,彩色打印机点击打印按钮打印的是彩色的图纸,黑白打印机点击打印按钮打印的是黑白的图纸;打印机可以看做是父类,黑白,和彩色的打印机可以看做是子类,两个子类都对父类的打印方法进行了重写;
子类到父类的转换(向上转型)
//讲int型常量或变量的值赋给double型变量,可以自动进行类型转换
int i=5;
double d1=5;
//将double型常量或变量的值赋给int型变量,进行强制类型转换
double d2=3.14;
int a=(int)d2;
public class Master{ private String name=""; private int money=0; public Master (String name,int money){
this.name=name; this.money=money; } public void feed(Pet pet){ pet.eat(); } public void feed(Dog dog){ dog.eat(); } public void feed(Penguin pgn){ pgn.eat(); }
使用父类作为方法返回值实现多态
public class Master{ private String name=""; private int money=0; public pet getpet(int typeId){ pet pet=null; if(typeid==1){ pet=new Dog("欧欧","雪耐瑞"); }else if(typeId==2){ pet=new penguin("楠楠","Q妹"); } return pet; } } }
父类到子类的转换(向下转型)
当向上转型发生后,将无法调用子类特有的方法;但是当需要调用子类特有的方法时,可以通过将父类再转为子类实现;
public class a { public static void main(String[] args) { Pet pet=new Dog("欧欧","雪纳瑞"); pet.eat(); Dog dog=(Dog)pet; dog.catchingFlyDisc(); Penguin pgn=(Penguin) Pet; pgn.swimming() } }
instanceof运算符
语法 对象instanceof类或者接口
该运算符来判断一个对象是否属于一个类或者实现了一个接口,结果为true或false;在强制类型转换之前通过instanceof运算符检查对象的真实类型,在进行相应的强制类型转换,这样就可以避免类型转换异常,从而提高代码的健壮性;

浙公网安备 33010602011771号