我是靠谱客的博主 苗条钢笔,最近开发中收集的这篇文章主要介绍类型转换(向下强制),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

类型转换(向下强制)

1. 向上转型比较安全
    int i =1;
    double result = i ;

    Employee e = new Manager();

2. 向下转型不安全(因为父类中不一定有子类的一些属性和方法),需要强制转换

    double d=4.9999999;
    int result = (int) d  ;

    Manager m = (Manager)new Employee();//(另需要是由子类做底层构建)

   double
   float
   int

   Employee
   Manager
   Boss
   另: int  a = 5;
         float  b= (float) 5.0;
         long c = 5L;

  //5.0是double型,其它两项必须转型才有匹配的方法test(double a ,double b,double c)可以用
   test(5,5.0,5L) //-->1
  // 如果有显示定义类型就按照类型判断
   test (a,b,c)       //-->2
 void test(double a ,double b,double c){
  System.out.println("1---"+a+"=="+b+"=="+c);  //1---5.0==5.0==5.0
 }
 
 void test(int a ,float b,long c){
  System.out.println("2---"+a+"=="+b+"=="+c); //2--5==5.0==5
 }  


   5.0 自动转换到double

3.对象引用的类型决定了哪个变量可以访问,底层对象的类型决定了哪个方法可以调用(属性=方法)

class Acc{
 public static void main(String[] args){
  First s = new Second();  //First s = new First();  ClassCaseException
  Second s2 = (Second)s;
  System.out.println("s.var="+s.var);      // s.var=1
  System.out.println("s.method()="+s.method()); //s.method()=2
  System.out.println("s2.var="+s2.var);      // s2.var=1
  System.out.println("s2.method()="+s2.method()); //s2.method()=2
 }
}

class First{
 int var =1;
 int method(){
  return var;
 }
}

class Second extends First{
 int var = 2;
 int method(){
  return var;  
 } 
}

最后

以上就是苗条钢笔为你收集整理的类型转换(向下强制)的全部内容,希望文章能够帮你解决类型转换(向下强制)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部