Java,类的继承与多态

继承与多态

多态

父类:Person

  • 父类有一个 run() 方法
public class Person {
    public void run()
    {
        System.out.println("father run");
   	}
}

子类:Student 继承父类Person

  • 有一个重写父类的 run() 方法
  • 还有子类自己的 eat() 方法
public class Student extends Person{
    public void run()
    {
        System.out.println("son run");
    }

    public void eat()
    {
        System.out.println("son eat");
    }
}

创建 s1,s2,s3三个对象

  • s1 : Student类对象
  • s2 : Person类型引用 Student类对象
  • s3 : Person类对象
Student s1=new Student();
Person s2=new Student();
Person s3=new Person();

调用方法

  • s1调用子类Student重写的的 run() 方法
  • s1调用子类Student自己定义的 eat() 方法
s1.run();//子类重写方法
s1.eat();//子类自己定义的方法
s2.run();//子类重写方法
s2.eat();//Error!!
  • s2也调用子类Student重写的的 run() 方法,因为s2是声明为Person类型,但是引用了子类Student对象 【new Student()】,所以可以调用子类重写的方法
  • s2无法调用子类自己定义的 eat() 方法,因为s2声明为Person类型

运行结果

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值