java——面向对象程序之“多态”

  • Post author:
  • Post category:java


多态是指类的多态性,多态在现实中很普遍,例如:动物们都会行走,虽然都是走,但行走的姿态却都不一样;都是计算面积,可不同形状计算面积的方法却不一样;都是在学习,可是学生们学习的方法却不尽相同。

多态性是指在类定义中出现多个构造方法或多个同名的成员方法,所以多态性又称:一个名字,多个方法。

多态性使得继承的特性更具灵活性和可拓展性。多态性实现方式有两种,但两者之间也有不同。

1.

重载


重载是指同一个类中定义多个名称相同,但参数个数或类型不同的方法。

2.

覆盖


覆盖,是指在子类中定义名称,

参数个数



类型

均与父类

相同

的方法,用以重写父类中的方法的功能。在使用是应该注意:在子类重定义父类方法时,与父类方法的

参数个数,顺序,类型完全相同



例如定义动物类,狗类,猫类,内部的方法名相同,狗类猫类继承动物类:

//动物类
class Animal{
	public void walk(){
		System.out.println("动物爬行");
		}
	}
//狗类
class Dog extents Animal{
	public void walk(){
	System.out.println("狗爬行");
	}
}
//猫类
class Cat extents Animal{
	public void walk(){
	System.out.println("猫爬行");
	}
}
/*注意:上方的“狗类”和“猫类”内部方法名都为walk()但方法内部的类型是相同的(输出结果不同)
*/
//主类
public class L01_Animal{
	public static void main(String[] args){
		Animal animal=new Animal();//类的实例化
		Dog dog=new Dog();//类的实例化
		Cat cat=new cat();//类的实例化
		walkOfAnimal(animal);
		walkOfAnimal(dog);
		walkOfAnimal(cat);
		//定义动物爬行的方法,通过接受不同的动物方法后实现不同的方法
		public static void walkOfAnimal(Animal a){
			a.walk();
		}
	}
}  

如果想父类的方法不让子类的方法来覆盖他,要在父类方法前加上final关键字 ;同样的,父类的数据成员变量可以加上final关键字来让子类无法改变它。



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