多态是指类的多态性,多态在现实中很普遍,例如:动物们都会行走,虽然都是走,但行走的姿态却都不一样;都是计算面积,可不同形状计算面积的方法却不一样;都是在学习,可是学生们学习的方法却不尽相同。
多态性是指在类定义中出现多个构造方法或多个同名的成员方法,所以多态性又称:一个名字,多个方法。
多态性使得继承的特性更具灵活性和可拓展性。多态性实现方式有两种,但两者之间也有不同。
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 版权协议,转载请附上原文出处链接和本声明。