设类b是类c的父类 假设A是类B的父类,声明中:A x =new B()有什么意义嘛?为什么B x=new A()?
浏览量:2544
时间:2021-03-10 19:52:58
作者:admin
假设A是类B的父类,声明中:A x =new B()有什么意义嘛?为什么B x=new A()?
继承是面向对象编程的一个特性。它有很多优点,例如您提到的两个类:如果父类有属性、成员方法和一些可以由子类继承的方法,那么可以通过子类直接调用它。在声明中:a x=new b()创建一个类型a,但它是一个子类的实例,因此它可以拥有该子类的所有函数,例如:List=new arraylist()和b x=new a()错误与类型转换问题有关,b类是一个子类,小类型转换为大类型是隐式转换,因此a x=new b()是将子类的实例转换为父类型,属于从大类型到小类型的转换。但是,如果将小类型转换为大类型,则需要显示转换。您可以这样做:bx=(B)newa(),但这只意味着编译可以通过,并且在执行期间类型转换中可能存在异常。
java中允许子类的引用指向父类的对象吗?比如A是父类B是子类 可以像这样写吗: B b=new A()?
如果a是父类,B是子类,则是错误的。如果反过来是真的。
子类对象可以分配给声明为父类的变量:A=new b(),但在这种情况下,A只能调用父类A中声明的方法和属性,而不能调用子类b中声明的方法和属性。如果这样编写,通常会发生类型转换错误。你可以试试。建议看一下Java类型转换,这一点非常清楚。
设类b是类c的父类 假设a公司b公司两家公司 super关键字可以指代父类的父类吗
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。