java子類轉父類
❶ java:子類對象向上轉型為父類實例後,調用的是父類方法,還是子類方法
當子類重來寫了父類方法,向自上造成後調用的是子類方法;
子類沒有重寫父類方法,向上造型後調用的是父類方法。
public class Test1 {
public static void main(String[] args) {
A k=new B();
k.sayHi();
k.hello();
}
}
class A {
public void sayHi(){
System.out.println("我是父類");
}
public void hello(){
System.out.println("我是父類hello");
}
}
class B extends A{
public void sayHi(){
System.out.println("我是子類");
}
}
輸出結果:
我是子類
我是父類hello
❷ java子類為什麼要進行父類強制轉換為子類
一般都是把子類的對象賦值給父類的引用
有上轉型和介面回調
publicinterfaceA{
}
publicclassB{
}
publicclassCextendsB{
}
publicclassDimplementsA{
}
publicclassTest{
publicstaticvoidmain(Stringargs[]){
Bc=newC();//上轉型
Ad=newD();//介面回調
}
}
你指的是哪個?還是
Cc=newC();
Bb=(B)c;
❸ JAVA中子類對象轉換成父類對象後是否能調用子類方法
class SuperClass
{
int i;
}
public class ChildClass extends SuperClass
{
public void test(){
System.out.println("這是子類的方法,父類沒有的");
}
public static void main(String [] args){
SuperClass sc = new ChildClass();
sc.test();//這里提示錯誤
}
}
❹ java 子類轉換成父類叫什麼
是的,java
可以自動子類轉換成父類(稱為向上轉換),子類獨有的方法和屬性會隱藏。但是還是存在的,例如
a
a
=
new
b();
b
b
=
(b)
a;
//強制轉換
這時仍能使用而調用b的fun3();
❺ java為什麼子類可以轉換成父類
是的,java 可以自動子類轉換成父類(稱為向上轉換),子類獨有的方法和屬性會隱藏。但是還是存在的,例如
A a = new B();
B b = (B) a; //強制轉換
這時仍能使用而調用b的fun3();
❻ java 子類與父類轉換
A extends B.
B b = new A();
A a = (A) b.
以上是沒有問題的。其實在調用paint(Graphics oldg)時所傳入的參數oldg本身就是Graphics2D對象。你可以在方法的開始加上System.out.println(oldg);就明白了。
❼ java 子類強制轉換為父類,父類強制轉換為子類調用問題
類A = (類A) 類aaa;
❽ java 子類b對象 自動轉換成 父類 a以後 怎麼調用 子類b的方法
i.setA(1.1);
這里的i的類型是a(雖然是b類型向上轉型的),只能調用a下的方法,然而a並沒有setA這個方法,
想要調用有兩種辦法
將i的類型轉換為b
把a欄位和getter,setter方法放到類a里
子類轉型為父類之後只能調用父類中有的方法,不是繼承自父類的方法不能轉型為父類調用
轉型為父類之後,如果這個方法在子類重寫過,那調用子類的方法,調用父類用super關鍵字
如果這個方法在子類沒有重寫 那就調用父類方法
❾ JAVA 對象類型轉換----子類轉換父類
首先你要理解在Java裡面子類與父類的關系。 子類繼承父類,它可以繼承到父類的非私有成員變數回,以及方答法。 也就是說這個子類的對象完全可以當作父類的對象來用,因為它擁有所有父類的方法,和成員 所以,在Java裡面,父類的引用可以指向子類對象。 1.A a = b;因為b是B類的對象,B類繼承自A類,所以A a = b;沒有問題。等於 A a = new B(); 2.方法callA(A a)的參數形式就這個參數必須是A類的對象。當然,也可以A類子類的對象。因為A類子類的對象可以當A類的對象來用嘛。 3. callA(new B())實際上等同 A a = new B();callA(a); 第二問的 "如何調去的方法" 什麼意思?