什么是多态
一句话概括:父类对象引用子类变量 调用的是子类的实现
例子:chinese 类 以及chinese的父类person ,调用chinese类的实现。
子类
public class Chinese extends Person{
public void hello()
{
System.out.println("我是中国人");
}
public void baimian()
{
System.out.println("我来拜年了");
}
}
父类:
public class Person {
public void hello()
{
System.out.println("我是人类");
}
主程序:
public class main {
public static void main(String []args)
{
Person p =new Chinese();
p.hello();//实际指向的对象是chinese的对象,调用的是子类的对象
//能调用什么方法取决于变量的类型
//所以没有bainian这个方法
}
}
总结 :父类变量指向子类的对象的时候,实现实际上是实现子类的方法,但是能调用什么方法取决于父类的变量是什么类型的,题中无法调用子类的bainian方法
根据传入的参数决定创建什么类型的对象
public static Person createPerson(int i)
{
if(i==3)
{
return new Chinese();
}
else
{
return new Person();
}
}
主程序执行这句话后结果是?
Person p2=createPerson(3);
p2.hello();
结果: