【JAVA_SE】多态

1、面向对象编程有三大特性

封装、继承、多态。

封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。

继承是为了重用父类代码。两个类若存在IS-A的关系就可以使用继承。,同时继承也为实现多态做了铺垫。

2、Java多态的三个必要条件:

1、 继承

2、 子类重写父类方法

3、 父类引用指向子类对象

3、Demo

package test.xing;

class Father{
    protected int age;
    public Father(){
        age = 40;
    }
    
    void eat(){
        System.out.println("父亲在吃饭");
    }
}
class Child extends Father{
    protected int age;
    public Child(){
        age = 18;
    }
    
    void eat(){
        System.out.println("孩子在吃饭");
    }
    void play(){
        System.out.println("孩子在打CS");
    }
}

public class TestPolymorphic {
    public static void main(String[] args) {
        Father c = new Child();
        c.eat();
        //c.play();
        System.out.println("年龄:"+c.age );
        
    }

}

输出结果
在这里插入图片描述
给出结论:当满足Java多态的三个条件时,可以发现c.eat()调用的实际上是子类的eat,但c.age调用的还是父类的age,而c.play()则不会通过编译

猜你喜欢

转载自blog.csdn.net/qq_37865420/article/details/107757073
今日推荐