多态与泛型
1.多态的理解和使用:
多态自我理解就是同种调用的不同结果表现
1) 方法的多态性:包括重载和重写(其实重写就是为了下面类之间继承的多态)
2)类之间继承的多态
重载和重写已经在之前的文章中学习过了,下面是类的多态:
class animal{
public void eat(){
System.out.println("animal.eat()");
}
}
class cat extends animal{
public void eat(){
System.out.println("cat.eat()");
}
}
class dog extends animal{
public void eat(){
System.out.println("dog.eat()");
}
}
public class abs{
/*方法1*/
// public static void toEat(cat cat){
// cat.eat();
// }
// public static void toEat(dog dog){
// dog.eat();
// }
/*方法2*/
public static void toEat(animal animal){
animal.eat();
}
public static void main(String[] args) {
toEat(new cat());
toEat(new dog());
}
}
想调用cat和dog子类的eat方法,如果使用方法1的话,要用到两个静态方法,如果有很多子类的话这是不可行的;如果使用方法2的话,参数是父类,只需要用一个方法即可
2.向上转型和向下转型
上述的类多态性使用实际上用到了向上转型;下面是向上转型和向下转型的使用:
class animal{
public void eat(){
System.out.println("animal.eat()");
}
public void sleep(){
System.out.println("animal.sleep()");
}
}
class cat extends animal{
public void eat(){
System.out.println("cat.eat()");
}
public void breath(){
System.out.println("cat.breath()");
}
}
public class abs{
public static void main(Strin