Java 多态的例子

多态就是通过继承和动态绑定来决定程序使用哪个实现.

一个简单的例子。

interface Animal {
    public void eat();
}

class Whale extends SeaAnimal {
    int age = 20;

    @Override
    public void eat() {
        System.out.println("Whale is eatting a small fish");
    }

    private void swimming() {
        System.out.println("Whale is swimming");
    }

    @Override
    public int getAge() {
        return age;
    }

    public static void staticSwimming() {
        System.out.println("Static whale is swimming .");
    }

}

public class SeaAnimal implements Animal {
    int age = 10;

    private void swimming() {
        System.out.println("SeaAnimal is swimming.");

    }

    public static void staticSwimming() {
        System.out.println("Static seaAnimal is swimming.");
    }

    public int getAge() {
        return age;
    }

    public static void main(String[] args) {
        SeaAnimal animal = new Whale();
        animal.swimming();
        animal.eat();
        animal.staticSwimming();
        System.out.println("The age is " + animal.age);
        System.out.println("The age is " + animal.getAge());
    }

    @Override
    public void eat() {
        System.out.println("SeaAnimal is eatting a small fish");
    }
}

输出结果:

SeaAnimal is swimming.
Whale is eatting a small fish
Static seaAnimal is swimming.
The age is 10
The age is 20

从例子可以看出:

  • 成员变量不具备多态
  • private 方法不具备多态
  • static方法不具备多态
  • 构造方法不具备多态
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 多态的存在有三个前提: 1.要有继承关系2.子类要重写父类的方法3.父类引用指向子类对象 看下面几个例子,你就全明...
    长脖子树阅读 5,860评论 1 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,739评论 18 399
  • 对象的创建与销毁 Item 1: 使用static工厂方法,而不是构造函数创建对象:仅仅是创建对象的方法,并非Fa...
    孙小磊阅读 2,019评论 0 3
  • 1、.java源文件: 一个以”.java“为后缀的源文件:只能有一个与文件名相同的类,可以包含其他类。 2、类方...
    Hughman阅读 1,502评论 1 9
  • 2016年,我遇到了人生中最重要的事,也最让自己揪心的事,找工作。 “要做一个什么样的工作呢?”思前想后,怎么...
    better6789阅读 235评论 2 1