首页 > 编程语言 > 详细

JAVA多态

时间:2021-03-30 22:11:54      阅读:27      评论:0      收藏:0      [点我收藏+]

Java多态

实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。

多态的作用:消除类型之间的耦合关系。

多态存在的三个必要条件

一、要有继承;

二、要有重写;

三、父类引用指向子类对象。

*对象向上转型:父类 父类对象 = 子类实例;

public class FunctionTest{
    public static void main(String[] args) {
        //实例化student类
        Student student = new Student();
        //向上转型
        Person p = student;
        //由于fun1()已经被子类重写
        student.fun1();
    }
}
class Person{
    public void fun1(){
        System.out.println("A");
    }
    public void fun2(){
        this.fun1();
    }
}
class Student extends Person{
    //重写A中的方法

    @Override
    public void fun1(){
        System.out.println("B");
    }

    @Override
    public void fun2(){
        this.fun1();
    }
}

输出结果为B

对象向下转型:子类 子类对象 = (子类)父类对象;*

public class FunctionTest{
    public static void main(String[] args) {
        //向上转型 子类---》父类
        Person person = new Student();
        //向下转型
        Student student = (Student)person;
        //B 调用被重写的方法
        student.fun1();
        //B 调用父类的方法 this指向子类Stundent的fun1()方法输出B 注意不是A
        student.fun2();
        // C 调用子类的方法
        student.fun3();

    }
}
class Person{
    public void fun1(){
        System.out.println("A");
    }
    public void fun2(){
       this.fun1();
    }
}
class Student extends Person{
    //重写A中的方法

    @Override
    public void fun1(){
        System.out.println("B");
    }

    public void fun3(){
        System.out.println("C");
    }
}

JAVA多态

原文:https://www.cnblogs.com/tyy8/p/14598736.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!