java为什么要c 父类强制转子类类型子类

查看:1927|回复:3
怎么才能实现,我继承父类的方法,然后去用这个方法去访问子类的对象呢?我有子类,他们都有一个方法,shot()。我继承父类之后,能不能不重写父类的方法,而直接调用shot()方法,来输出子类的属性呢?求大神
int a = 1;
void shot()
System.out.println(a);
class B extends A
public static void main(String[] args)
&&B b = new B();
&&b.shot();
本帖最后由 yuke198907 于
11:18 编辑
引用:原帖由
09:21 发表
怎么才能实现,我继承父类的方法,然后去用这个方法去访问子类的对象呢?我有子类,他们都有一个方法,shot()。我继承父类之后,能不能不重写父类的方法,而直接调用shot()方法,来输出子类的属性呢?求大神
int a = 1;
void&&... 我就是不想在接口实现的时候敲一大堆相似的代码才到继承的。。。
引用:原帖由 yuke198907 于
09:45 发表
不行吧好像,要么你就重写,要么就用接口吧 我就是不想实现接口的时候敲一大堆类似的代码才想这么做的
高级工程师
不行、、、因为你要实现子类的属性,还不重写父类的方法,在创建B对象的时候调用的show方法只能是父类的、、、这个面向对象你还是好好看看吧!
太阳光芒万丈却不及蜡烛只为一人照亮、、、为了账号安全,请及时绑定邮箱和手机
强制类型转换不能直接将父类对象转换为子类对象吗
在程序中,我将父类的对象强制转换为子类的对象,为什么会报错?既然是强制转换,本来就是从大类型到小类型的转换啊???package com.
//学习多态
public class Initial {
public static void main(String[] args) {
// TODO Auto-generated method stub
Dog dog = new Dog();
Animal animal =//自动类型提升 向上类型转换
Animal animal2 = new Animal();
Dog dog2 = (Dog)animal2;//向下类型转换 强制类型转换
Cat cat = (Cat)
运行结果:
Exception in thread "main" java.lang.ClassCastException: com.imooc.Animal cannot be cast to com.imooc.Dog
at com.imooc.Initial.main(Initial.java:22)
非常感谢!
写下你的评论...
写下你的评论...
Copyright (C)
All Rights Reserved | 京ICP备 号-2想破头啦,关于父类强转成子类的问题
[问题点数:20分,结帖人ad]
想破头啦,关于父类强转成子类的问题
[问题点数:20分,结帖人ad]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2012年10月 Java大版内专家分月排行榜第三2012年6月 Java大版内专家分月排行榜第三
2012年5月 Java大版内专家分月排行榜第三
2012年5月 Java大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。这样子父类可以强制转化成子类,神奇-Java/JavaSE-java-电脑编程网这样子父类可以强制转化成子类,神奇-Java/JavaSE作者:mingchaoyan 和相关&&Java code
public class Main {
public static void main(String[] args) {
A a = new A();
B b = new B();
a = (A)//子类强制转换成父类
b = (B)//父类强制转换成子类
}
}
class A {
}
class B extends A{
}
去掉
a = (A)就不行了------回答---------------其他回答(10分)---------。。。。。。a = (A)//子类强制转换成父类 注意后面这句话 这时候a指向的实际上是b 前面那个括号可以不用 所以可以写成a =b = (B)//父类强制转换成子类 a还原为b 如果你上了上面的步骤的话 这个a指向的是a 加了上面的步骤指定的才是b..------其他回答(10分)---------class Main ?这样可以编译过去?另外 去掉 a=(A)b 怎么就不行了------其他回答(10分)---------引用 2 楼 _cxrs 的回复:class Main ?这样可以编译过去?另外 去掉 a=(A)b 怎么就不行了a=(A)b;a指向了B的对象!不再是原来的new A();对象了!楼主不要误导人哦!------其他回答(10分)---------a = (A)//子类强制转换成父类
// 这是 a 以非 A 了。b = (B)//父类强制转换成子类
// B 穿了个马甲出去转了一圈回来又脱掉了相关资料:|||||||这样子父类可以强制转化成子类,神奇-Java/JavaSE来源网络,如有侵权请告知,即处理!编程Tags:                &                    查看: 5332|回复: 7
请问JAVA中子类可以重载父类的方法吗?
该用户从未签到
该用户从未签到
重载?还是重写?
补充内容 ( 21:36):
方法的重写Overriding和重载Overloading
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。Overloaded的方法是可以改变返回值的类型。也就是说,重载的返回值类型可以相同也可以不同。& &1、重载(Overloading)
&&a、方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。
&&b、Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。& &c 、重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。& &2、重写(Overriding)
&&a、父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
&&b、若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。& &c、子类函数的访问修饰权限不能少于父类的
该用户从未签到
陈双桥 发表于
重载?还是重写?
补充内容 ( 21:36):
是重载 不是重写!!!
该用户从未签到
当然可以,比如说父类中有个show方法那么子类自然就继承了这个show方法,然后你还可以在子类中重载这个show方法,就是参数列表不同就可以了(与返回值没有关系)!
该用户从未签到
Chad 发表于
当然可以,比如说父类中有个show方法那么子类自然就继承了这个show方法,然后你还可以在子类中重载这个show ...
该用户从未签到
重载的概念:&&在同一类中&&1. 方法名相同& &2. 参数列表(参数个数或者参数类型)不同
好处:允许在同一类中存在重名的方法& & 避免过多的方法名
只要记住这个& &以后遇到这类的问题& &就不要想得太多& & 满足就是重载& &否则就不是
该用户从未签到
重载只能在一个类中=_=重写是父类与子类之间
该用户从未签到
中博黄璐璐 发表于
亲,给分呀{:109:}
Beijing Aptech Beida Jade Bird Information Technology Co.,Ltd
北大青鸟IT教育 北京阿博泰克北大青鸟信息技术有限公司 版权所有

我要回帖

更多关于 子类 父类 强制转换 的文章

 

随机推荐