java向上转型与向下转型

代码示例展示了Java中类的继承概念,包括父类与子类的关系,以及上转型和下转型对象的使用。上转型对象father可以调用父类方法和被子类重写的方法,但不能访问子类特有的方法。通过下转型,可以调用子类特有的方法。此外,上转型引用作为参数可以接受不同子类对象,体现了多态性。
摘要由CSDN通过智能技术生成
public class Father {
    public void eat(){
        System.out.println("father吃饭");
    }
    public void sleep(){
        System.out.println("father睡觉");
    }
}
public class Son extends Father{
    @Override
    public void eat() {
        System.out.println("son吃饭");
    }
    public void study(){
        System.out.println("son学习");
    }
}
public class Daughter extends Father{
    @Override
    public void eat() {
        System.out.println("daughter吃饭");
    }
    public void study(){
        System.out.println("daughter学习");
    }
}
public class Test {
    public static void main(String[] args) {
        Father father = new Son();//上转型(父类引用指向子类对象。)
        father.eat();//调用子类重写的方法
        father.sleep();//调用父类方法
//        father.study();//不能调用子类特有的方法
        System.out.println("======================================================");

        Son son = (Son) father;//下转型
        son.eat();//调用子类重写的方法
        son.sleep();//调用继承自父类的方法
        son.study();//调用子类特有的方法
        System.out.println("======================================================");

        //上转型的好处,可以只定义一个eat方法,却可以同时接受Son和Daughter的对象作为实参。
        eat(new Son());
        eat(new Daughter());
    }
    public static void eat(Father father){
        father.eat();
    }
}

son吃饭
father睡觉

======================================================
son吃饭
father睡觉
son学习

======================================================
son吃饭
daughter吃饭

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值