㈠ java中,抽象類的不帶返回值的方法子類該如何直接去調用和訪問!
你好,這個分下面幾種情況。
1.如果這個方法是一個抽象方法,那麼子類需要覆寫該方法,然後通過子類對象去調用。
2.如果這個方法是一個private方法,那麼子類將訪問不到這個方法。
3,如果這個方法是一個普通方法,那麼你可以在子類中直接調用。
第三個種類型舉個例子:
public abstract class A {
public void add(){ //....}
}
public class B extends A{}
public class Test{
public static void main(String[] args){
B b = new B() ;
b.add() ;
A a = new B() ;
a.add() ;
}
}
㈡ 抽象類中怎麼調用介面裡面的方法
抽象類不能被實例化,想調用裡面的普通方法要通過繼承,然後實例化子類調用抽象類的普通方法,下面有一段示例代碼供你參考
定義一個抽象類 A
public abstract class A {
abstract int getSum(int a,int b);//抽象方法
int getSum2(int b)
{
int b;
return b;
};//普通方法
}
定義B類繼承A類
public class B extends A {
int getSum(int a,int b) { //必須實現父類中的抽象方法的具體細節
int sum=a+b;
return sum;
}
public static void main(String a[]){ //主方法
System.out.println(new B().getSum2(90));//調用普通方法
System.out.println(new B().getSum(2,6));//調用抽象方法也相同
}
}
代碼你不要復制,因為標點有中文狀態下的可能會報錯
希望能解決你的疑問,不過抽象類還有一個特例「介面」,介面要通過implements 關鍵字實現
㈢ java中怎麼調用抽象類里的普通方法
樓上的沒有正面回答。想調用basestudent中的非抽象方法load,如果load方法是static的,則可以直接basestudent.load()就可以了;如果是非static的則必須需要一個繼承的非抽象類,然後用這個非抽象類的實例來調用load方法,或者這個非抽象類的實例被cast成basestudent,然後調用。
如:繼承basestudent的非抽象類:basestudentsub,可以用一下方法調用:
1、basestudentsub
bsds
=
new
basestudentsub();
bsds.load();
2、basestudent
bsd
=
new
basestudentsub();
bsd.load();
當然,也要考慮這個方法應該是public或protected的。如果是private的就一切免談了。
㈣ 抽象類中如何調方法
對,在子類中去重寫它,就可以直接調用了
㈤ 抽象類的對象可以調用抽象方法嗎,該怎麼解決
當然可以,在它被實例化之後,它的抽象方法自然已經被實現過了。
就是說,比如,Fruit類有個方法叫eat,都是抽象的
那麼Fruit f = new Banana();
f.eat();
調用的時候,因為已經存在了香蕉(Banana)類,且該類可以被實例化,說明該類里的eat方法已經被實例化過了。
㈥ 求解 JAVA抽象類引用調用方法要怎麼實現
抽象類和介面其實是差不多的,只是類只能繼承一個父類,但能同時實現多個介面,介面更多是用於定義一個標准防止出錯,而抽象類是因為父類沒必要實現具體的方法,而各個子類又有可能用到,所以才有了抽象類
//抽象類Animal並定義一個抽象方法eat()
abstract class Animal{public abstract void eat();}
//定義介面Runner,並定義抽象方法run()
interface Runner{void run();}
//定義介面Swimmer,並定義抽象方法swim()
interface Swimmer{void swim();}
//定義類Person並繼承Animal和實現介面Runner、Swimmer
class Person extends Animal implements Runner,Swimmer{
//覆寫方法eat()
public void eat() {
System.out.println("我牙好胃好,吃啥都香!");
}
//覆寫方法run()
public void run() {
System.out.println("我是飛毛腿,跑步速度極快!");
}
//覆寫方法swim()
public void swim() {
System.out.println("我有用技術很好,會蛙泳、自由泳、仰泳、蝶泳……");
}
}
//定義測試類用於測試輸出
public class PersonTest {
public static void main(String[] args) {
Person p=new Person();
p.eat();
p.run();
p.swim();
}
}