浅浅的谈 Java 多态的问题

时间:2021-02-03 21:57:10

开学这些天了,老师讲的东西也是马马虎虎,决定在学习新知识 之余 自己慢慢的学习下前面的知识 让自己更容易理解老师讲课中涉及到的知识,

或许这要和老师的教学反其道而行了,或许我只有这样了,不然前面的总是不会 后面的越讲越多 慢慢就没有信心了!所以决定 遇到事情自己就慢慢研究 查资料等等 把落下的知识慢慢补回来。

今天 在UML中涉及到了 多态,不是很明白 或者说都不知道什么是多态。 现在我用我自己理解的知识说下什么是多态, 多态我理解的意思就是 父类中的方法要在子类中 改写 也就是 没有用到子类时,父类或许就是一个空方法,但是如果在子类中用到这个方法 直接在子类中 改写这个方法,以满足子类的需要。

或许别人看起来我讲的也不是很理解,我是这么想的,多态是不是在父类中定义的一个方法,在这个父类的子类中可以以各种形式改写? 下面我自己像个例子来说下,也请高手指点下..

 

例子:

class Parent{//作为父类
	
	public void drink(){
		System.out.println("爸妈喝酒");
	}
	
}

class Child extends Parent{//子类
	public void drink(){
		System.out.println("孩子喝奶");
	}
}

public class A{//测试类
			public static void main(String[] args){
			/* 
				父类本身产生的结果
			*/
			Parent p1 = new Parent();
			System.out.print("父类本身产生的结果:");
			p1.drink();
			
			/*
				子类本身产生的结果
			*/
			Child p2 = new Child();
			System.out.print("子类本身产生的结果:");
			p2.drink();


			
			
			/*
				通过多态产生的结果
			*/
			Parent p3;
			p3= new Child();
			System.out.print("通过多态产生的结果:");
			p3.drink();
		}
}


这里面的 p3 是父类的对象,但是它是子类的方法!

思路还是很混乱,请高手指点下....