请教各位朋友
A是B的父类那么
A aa = new B()
与(A)new B()
是一样的吗?
A是B的父类那么
A aa = new B()
与(A)new B()
是一样的吗?
解决方案 »
- static指明该方法是 一个类方法 这句话的意思
- 关于JAVA局部变量的一个问题
- 菜鸟自学Java SE 各位给个建议阿
- 求助..
- 求教如何把迭代器中的循环的(String)数据取出存入到Strin数组中
- 为什么不带参数的构造函数不能用 Test(3,3); 这种形式调用带参数构造函数 ?
- 当线程的run中包含String[] list = string.split("_");语句时,线程无法用Thread.interrupt()中止,这是为何?
- 菜人问题:问一个jdk-doc的问提
- 什么叫中间包(件)?----初学者
- ■■JAVA有许多版本的工具,使用的类库也各有不同,VJ++使用WFC,JCREATE使用AWT。。这么多不同的类库,我是否需要一个一个学,请JAVA老手指教我该从何入手呢?■■
- [求助]java应用程序中如何实现声音文件的添加??
- 怎么用JAVA实现DES或AES算法???
是一样的,编译器默认转换
----------
同意
我试了一下 都是一样的
A aa = new B()
与A aa=(A)new B()一样
但还有个问题就是
象类似A aa = new B()
与(A)new B()
这样写代码
一般都有什么作用,也就是在什么地方能用到这样写代码
与其这样写”aa.方法()“或“((A)new B()).方法()”
不如直用子类的方法“new B().方法()”
为什么要这样写?
public class Test { public static void main(String[] args) {
A a = new B();
a.f(); //多态性,调用的是子类中的f()方法
((A) new B()).f(); //多态性,调用的是子类中的f()方法
}
}class A {
public void f() {
System.out.println("aaa");
}
}class B extends A {
//重写基类中的f()方法:
public void f() {
System.out.println("bbb");
}
}
输出结果:
bbb
bbb
A b = new A();a和b是不是一样啊 ??
不如直用子类的方法“new B().方法()”
为什么要这样写?
------------------
没有这样写的:“((A)new B()).方法()”一般都是
[Object or Interface] obj = getInst();
((A)obj).method();