- 多态
多态就是一个面向对象语言中的使用方法。
多态最基础的使用方式
多态最基础的结构:父类引用指向子类实例。
父类 引用 = new 子类();
例如:
public class A {
}
public class B extends A{
}
public static void main(String[] args) {
A a = new B();
}
- 多态在哪里呢?
多态最表面的理解,就是多种形态。
因为父类引用与子类实例实例之间一对多的关系。
所以,同一个父类引用,可以指向多个不同的子类实例。
A a ;//这个a的引用,可以指向三种不同的实例。
a = new C();
a = new B();
a = new A();
可以调用哪些方法?
当父类引用指向子类实例时,父类引用可以打点调用哪些方法?
- 只能调用在父类中声明过的方法,因为引用是一个父类的类型。
- 可以调用父类中的方法。
- 可以调用子类重写的方法。
多态的一般使用格式:
使用父类引用作为方法的形参,使用不同子类实例作为方法的实参。
public class A {
public void dis(){
System.out.println("A.dis()!");
}
}
public class B extends A{
@Override
public void dis() {
System.out.println("B.dis()!");
}
}
public class C extends A{
@Override
public void dis() {
System.out.println("C.dis()!");
}
}
public class Test {
public static void dis(A a){
a.dis();
}
public static void main(String[] args) {
dis(new A());//A a = new A();
dis(new B());//A a = new B();
dis(new C());//A a = new C();
}
}