面向对象多态概念理解

什么是多态

一句话概括:父类对象引用子类变量 调用的是子类的实现

例子: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();

结果:




猜你喜欢

转载自blog.csdn.net/RAVEEE/article/details/80397088