多态
当你的子类将父类的方法重写后,当你还想调用到父类的方法时就需要用到多态。
格式:
Father f1=new Son();
注:
-
多态是方法的多态,属性没有
-
多态是两个类之间必须有关系
-
方法必须是重写了的,不然没有多态的必要
public class a{
public void f1(){
System.out.print("父类的方法");
}
}
public class b extends a{//继承父类的方法
public void f1(){//重写父类的f1方法
System.out.print("子类的方法");
}
public void f2(){//独属于子类的方法2(f2)
System.out.print("小白鼠");
}
}
public class cs{//测试类
b s1=new b;//new一个s1对象
a s2=new b;//使用多态,调用让s2可以调用父类的方法,但是因此也会调用不了f2方法
s2.f1();//此时输出的就会是“父类的方法”
((b)s2).f2();//当身处a类里的s2想调用子类里的方法时,就要用到类型的转换了
}
类型的转换
类型的转换和当初的属性一样,都是为了方便与节省空间。
格式:以上题为例
-
高转低:父 转 子(强制转换)
public class cs{
b s1=new b;
a s2=new b;
s2.f1();
((b)s2).f2();//强制转换
}
-
低转高:子 转 父
a s2=new b;
instanceof
他的作用是判断两个类有没有关系(如父子关系)
格式:
System.out.print(X instanceof Y);//如果有关系就会输出true反之false