首页 > 代码库 > Java中的多态

Java中的多态

1.多态:具有表现多种形态的能力的特征

父类:

public abstract class Animal {
public abstract void Say();
}

子类:

public class Dog extends Animal {

@Override
public void Say() {
System.out.println("狗");
}

}

 

public class Cat extends Animal{

@Override
public void Say() {
System.out.println("猫");

}

}

因此这样就可以将父类中的抽象Say()方法重写

2.如果把引用变量转换为子类类型,则称为向下转型,如果把引用变量转换为父类类型,则称为向上转型。在进行引用变量的类型转换时,会受到各种限制。而且在通过引用变量访问它所引用的实例的静态属性、静态方法、实例属性、实例方法,以及从父类中继承的方法和属性时,java虚拟机会采用不同的绑定机制。

3.java编译器允许在具有直接或间接继承关系的类之间进行类型转换,对于向上转型,不必使用强制类型转换,因为子类的对象肯定也可看做父类的对象。例如一个Dog对象是一个Animal对象,也是一个Object对象

4.使用父类方法实现多态

父类:

public class Animal {
public void Say(){

};
}

子类:

public class Dog extends Animal {

public void Say() {
System.out.println("狗");
}

}

只要和父类方法名相同即可重写父类方法

 

Java中的多态