多态的定义与使用格式

本文记录Java学习过程中遇到的多态的定义与使用格式~

多态的定义格式:

父类类型  变量名= new 子类类型();
变量名.方法名();
  • 普通类多态定义的格式
父类变量名= new 子类();

示例代码:

class Fu {}

class Zi extends Fu {}

//类的多态使用
Fu f = new Zi();
  • 抽象类多态定义的格式
抽象类变量名= new 抽象类子类();

示例代码:

abstract class Fu {

    public abstract void method();
}

class Zi extends Fu {

    public void method(){
        System.out.println(“重写父类抽象方法”);
    }
}

//类的多态使用
Fu fu= new Zi();
  • 接口多态定义的格式
接口变量名= new 接口实现类();

示例代码:

interface Fu {
    public abstract void method();
}

class Zi implements Fu {

    public void method(){
        System.out.println(“重写接口抽象方法”);
    }
}

//接口的多态使用
Fu fu = new Zi();
  • 注意事项:同一个父类的方法会被不同的子类重写,在调用方法时,调用的为各个子类重写后的方法。

示例代码:

Person p1 = new Student();
Person p2 = new Teacher();

p1.work(); //p1会调用Student类中重写的work方法
p2.work(); //p2会调用Teacher类中重写的work方法

当变量名指向不同的子类对象时,由于每个子类重写父类方法的内容不同,所以会调用不同的方法。

标签: none