永发信息网

在java里面的向上转型和向下转型的具体好处在哪里?

答案:2  悬赏:0  手机版
解决时间 2021-11-10 16:20
  • 提问者网友:黑米和小志
  • 2021-11-10 00:09
在java里面的向上转型和向下转型的具体好处在哪里?
最佳答案
  • 五星知识达人网友:杯酒困英雄
  • 2021-11-10 01:41
java里面的向上转型和向下转型的具体好处如下:
1.转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求,则子类可以重写父类中的方法来加以扩展。
2.向上转型:子类引用的对象转换为父类类型称为向上转型。通俗地说就是是将子类对象转为父类对象。此处父类对象可以是接口
向上转型时,父类指向子类引用对象会遗失除与父类对象共有的其他方法,也就是在转型过程中,子类的新有的方法都会遗失掉,在编译时,系统会提供找不到方法的错误。实例如下:
public class Animal {
         public void eat(){
                   System.out.println("animal eatting...");
         }
}
class Bird extends Animal{
         public void eat(){
                   System.out.println("bird eatting...");
         }
         public void fly(){
                   System.out.println("bird flying...");
         }
}
class Main{      
         public static void main(String[] args) {
                   Animal b=new Bird(); //向上转型
                   b.eat();
         b.fly();  //此处提示在Animal中没有定义fly方法。
全部回答
  • 1楼网友:有你哪都是故乡
  • 2021-11-10 02:14
向上转型是安全的 向下转型却不一定是安全的

向下转型成为强制类型转换 其意思是从父类转为子类 转了后你可以拥有更多的方法 因为子类通常有比父类更多的方法

向上转型称为抽象
给你举个例子
比如说一个工程 最后的main方法里面调用了其他地方的一个方法 该方法有一个参数 我假设方法的括号里为Person person 现在你要去调这个方法 你往里面传中国人 美国人 日本人 该方法都能跑起来 并且会通过多态调用不同的子类实现方法 但你如果不这样做 假设你把参数定为英国人 那你如果往里面传中国人 这个方法就跑不起来了 你就要去改代码 反之 你就不用改动任何代码追问能举两个简单的例子吗?谢谢追答你应该知道Java里面的基本数据类型有int和long long的数据范围比int大 如果你定义了一个long类型的数据 语法是:long x=4; 你想把他转成int类型的数据 语法是:int a=(int)x; 这就是向下转型 也就是强制类型转换 上面的情况不会产生问题 但如果你定义的long类型数据太大了超过了int的最大范围就会出现问题了 所以向下转型不一定是安全的

向上转型的例子:你定义了一个方法 public void test(Object obj)
该方法形参写的是Object类型 所以你往里面扔任何对象类型都是可以的

向上转型:
看以下这种情况: public void test(String str)
该方法形参是字符串类型 所以你只能扔字符串

在C/S编程中 提供给客户端用户调用的方法 形参都用的是最上端的 也就是父类 因为如果一个类是子类 那么它肯定是父类
形参是父类的话 你往里面扔他的子孙也是可以运行的 会通过多态调用不同的实现
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯