java面向对象中的多态

多态存在的条件

  • 类之间有继承关系
  • 子类需要重写父类的方法
  • 父类的引用类型指向子类对象
    Person类(父类)
package com.oop.demo05;

public class Person {

    public void say(){
        System.out.println("hello,Person");
    }

    public void hi(){
        System.out.println("hei");
    }
}

Student类(子类)

package com.oop.demo05;

public class Student extends Person{
    public void say(){
        System.out.println("hello,Student");
    }
    public void hello(){
        System.out.println("hi");
    }
}

主类

package com.oop.demo05;

public class Application {
    public static void main(String[] args) {
        /*
            1.一个类的实际对象是确定的 new Person  new Student
            2.可以指向的应用类型就不确定了:父类的引用指向子类
         */

        // Student类能调用的方法都是自己的或者是继承父类的
        Student s1 = new Student();

        // Person类 可以指向子类(Student)  但是不能调用子类独有的方法
        Person s2 = new Student();


        s1.say(); // 子类重写了父类的方法
        s2.say();

        // 对象能执行那些方法,主要看左边的类型,和右边关系不大
        s1.hello();
        //s2.hello(); //报错  因为该方法不是重写  方法只在子类中存在

        // 父类有 子类没有  直接调用父类
        s1.hi();
        s2.hi();
    }
}

运行结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值