面向对象编程实验—多态 建立一个抽象类Shape,其中包含一个抽象方法draw();

面向对象编程实验—多态

实验内容:

建立一个抽象类Shape,其中包含一个抽象方法draw();
建立两个子类J_Circle和J_Square,继承Shape,分别实现Shape中的抽象方法draw()
建立Test_Shape类,创建一个J_Square类的对象sqare,再创建一个Shape关于J_Circle的引用对象circle;通过circle对象调用方法draw(),观察如何实现Shape类的多态性。


代码实现:

package day02;

abstract class Shape{  //建立抽象类Shape
	abstract void draw();  //抽象方法draw()
}

	class J_Circle extends Shape{  //建立子类J_Circle
	void draw()  //继承Shape中的抽象方法draw()
	{
		System.out.println("通过circle对象调用方法draw()");
	}
}
	
	class J_Square extends Shape{  //建立子类J_Square
	void draw()  //继承Shape中的抽象方法draw()
	{
		System.out.println("调用J_Square中的draw方法");
	}
}
	
public class Test_Shape {  //建立Test_Shape

	public static void main(String[] args) {
		// TODO Auto-generated method stub
			Shape circle=new J_Circle();  //创建一个Shape关于J_Circle的引用对象circle
			circle.draw();  //通过circle对象调用方法draw()
			J_Square sqare=new J_Square();  //创建一个J_Square类的对象sqare
			sqare.draw();			
	}
}

实验总结:

1、多态性:
多态性是指具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容的函数。在面向对象方法中一般是这样表述多态性:向不同的对象发送同一条消息,不同的对象在接收时会产生不同的行为(即方法)。也就是说,每个对象可以用自己的方式去响应共同的消息。所谓消息,就是调用函数,不同的行为就是指不同的实现,即执行不同的函数。总而言之就是在不考虑对象的类型的情况下直接使用对象。
而多态指的是一类事物有多种形态。一般是抽象的形式,它们之间是继承的关系。
2、多态性的好处:
(1)增加了程序的灵活性
以不变应万变,不论对象千变万化,使用者都是同一种形式去调用;
(2)增加了程序额可扩展性
通过继承创建了一个新的类,使用者无需更改自己的代码,还是用上述形式去调用。
3、java多态性组成:
(1)方法的多态性:
方法重载:方法调用时根据不同的参数个数和类型可以实现不同的功能
方法覆写:不同的子类对于相同的方法可以有不同的实现;
(2)对象的多态性:父类与子类之间的转换操作
对象向上转型:父类 父类对象 = 子类实例,自动完成;
对象向下转型:子类 子类对象 = (子类)父类实例,强制转换;



版权声明:本文为lujiaweirdo原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。