接口 对象 = new 实现类为什么能调用到实现类的方法以及意义

为什么能调用到实现类的方法

在Java多态的特点中:当父类(接口)引用指向子类(实现类)的对象时,父类的引用就能直接调用子类中的方法

ex:List list = new ArrayList();
List是一个接口,ArrayList就是List的一个实现类

Java三大特性:
1、封装:一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
2、继承:子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
3、多态:同一个行为具有多个不同表现形式或形态的能力。

意义

一句话概述:为了减少开发过程中代码的修改量
如下例子


写一个Animal接口,含有叫和跑两个方法

public interface Animal {
    public void call();
    public void run();
}

Dog类和Cat类都时Animal的实现类

//Dog类
public class Dog implements Animal {
    @Override
    public void call() {
        System.out.println("大狗在汪!");
    }

    @Override
    public void run() {
        System.out.println("狗在狂奔");
    }
}

//Cat类
public class Cat implements Animal {
    @Override
    public void call() {
        System.out.println("猫咪在喵~");
    }

    @Override
    public void run() {
        System.out.println("猫咪在散步");
    }
}

测试猫:

public class test {
    public static void main(String[] args) {
        Animal animal = new Cat();
        animal.call();
        animal.run();
    }
}

接口 对象 = new 实现类为什么能调用到实现类的方法以及意义_第1张图片
换成狗:

public class test {
    public static void main(String[] args) {
        Animal animal = new Dog();
        animal.call();
        animal.run();
    }
}

接口 对象 = new 实现类为什么能调用到实现类的方法以及意义_第2张图片

你可能感兴趣的:(Java进阶自学笔记,java,多态,接口)