多态性在面向对象中是一个最重要的概念,在Java中主要有两种体现形式:方法的重载与覆写和对象的多态性。
方法重写
子类实现父类的同名方法,并且参数的类型和个数完全相同,这种情况称为覆写/重写/覆盖。
关于覆写的注意事项
1. 覆写和重载是两个不同的概念和意义;
2.普通方法是可以完成覆写的,但是被static修饰的静态方法无法被覆写;
3.覆写中子类的方法访问权限不能够低于父类的方法访问权限。
对象的多态性主要分为以下两种类型:
1.向上转型: 子类对象——》 父类对象。
2.向下转型: 父类对象——》子类对象。
向上转型
对于向上转型来说,程序会自动完成这个过程,基本语法如下:
// 父类 父类对象 = 子类对象实例;
class A{
// 定义类A
public void fun1(){
// 定义fun1()方法
System.out.println("A --> public void fun1(){}") ;
}
public void fun2(){
this.fun1() ; // 调用fun1()方法
}
};
class B extends A{
public void f