多态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Base
{
public void method()
{
System.out.println("Base");
}
}
class Son extends Base
{
public void method()
{
System.out.println("Son");
}

public void methodB()
{
System.out.println("SonB");
}

}
public class Test01
{
public static void main(String\[\] args)
{
Base base = new Son();
base.method();
base.methodB();
}
}

这句new 了一个子类,赋值给父类,所以下面的操作编译器认为base对象就是Base类型的

Base类中不存在methodB()方法,所以编译不通过

要想调用的话需要先通过SON son=(SON)base;强制转换,然后用son.methodB()调用就可以了。

多态编程:编译看左边运行看右边