美文网首页
Java——多态的理解

Java——多态的理解

作者: iristian | 来源:发表于2021-01-06 15:14 被阅读0次

1.多态就是父类的引用指向子类的对象
2.编译看左边,执行看右边


image.png
image.png

3.子类中定义了与父类中同名同参数的方法,在多态的情况下,运行时调用的是对应子类的该方法


image.png
4.子类和父类的互相转换
-子类转换成父类是可以自动进行的,也就是多态,注意子类赋值给父类(实际上就是多态),调用的方法还是子类的方法,调用的属性是父类的属性(详情见5的代码)
-父类转换成子类,需要用instanceof判断,然后再强制转化,此时转换以后,就是类型是子类的类型,对象也是子类的对象了
例如,
Person p = new Student();
if (p instanceof Student) {
Student s = (Student)p;
}
image.png
image.png

5.代码1

public class FieldMethodTest {
    public static void main(String[] args) {
        Sub s = new Sub();
        System.out.println(s.count);
        s.display();
        Base b = s;
        System.out.println(b == s);
        System.out.println(b.count);
        b.display();
    }
}

class Base {
    int count = 10;

    public void display() {
        System.out.println(this.count);
    }
}

class Sub extends Base {
    int count = 20;

    public void display() {
        System.out.println(this.count);
    }
}

运行结果

20
20
true
10
20

6.代码2

public class FieldMethodTest {
    public static void main(String[] args) {
        Base s = new Sub();
        s.display();//28
        System.out.println(s.b);//5
        //System.out.println(s.a);//报错,提示Base中没有这个属性
        System.out.println(s.count);//10
    }
}

class Base {
    int count = 10;
    int b = 5;

    public void display() {
        System.out.println(this.count);
    }
}

class Sub extends Base {
    int count = 20;
    int a = 3;

    public void display() {
        System.out.println(this.count + a + b);
    }
}

运行结果

28
5
10

相关文章

  • Java 多态之方法调用顺序

    本文例子取于<深入理解java多态性>和,分析 Ja...

  • JAVA面向对象学习(多态性)

    多态性的理解和应用 1.1. 多态性的理解 多态性:在Java中,多态性是它的一大特性,可以理解成为是事物的多种形...

  • Java多态

    Java多态 编译时类型和运行时类型 理解编译时类型和运行时类型是理解多态的关键 上最直白的定义: Java的引用...

  • java多态的理解

    多态的三个必要条件:1.继承2.重写3.父类引用指向子类对象 解释:程序中定义的引用变量所指向的具体类型和变量发出...

  • java多态的理解

    实现多态的三个必要条件: 1. 要有继承 2. 要有重写 3. 父类引用指向子类对象

  • Java多态的理解

    多态可以理解为java的特性概括为:允许不同的对象针对不同的场景有不同的体现 例子一继承然后对父类的重写可以让子类...

  • Java——多态的理解

    1.多态就是父类的引用指向子类的对象2.编译看左边,执行看右边 3.子类中定义了与父类中同名同参数的方法,在多态的...

  • 分享一些重要的Android面试题

    说一下JAVA多态的理解,以及接继承,和接口的理解 于哥在这里只讲多态,其他自己上网体会 对于多态的定义 不同类的...

  • 金9银10,分享几个重要的Android面试题

    说一下java多态的理解,以及接继承,和接口的理解 于哥在这里只讲多态,其他自己上网体会 对于多态的定义不同类的对...

  • Java的基本特性

    关系 Java的四个基本特性分别是抽象,封装,继承,多态。概括起来可以这么理解,抽象、封装、继承是多态的基础,多态...

网友评论

      本文标题:Java——多态的理解

      本文链接:https://www.haomeiwen.com/subject/tphwoktx.html