[英]How to call a method from another class?
public class ClassOut {
abstract class ClassIn {
int x = 20;
public void print() {
System.out.println("value = " + getX());
}
public abstract int getX();
}
}
如何從另一個類調用方法print()
?
如果抽象是一個獨立的類(不是內部類),則可以簡單地對其進行擴展
public class MineClass extends Classin {
// implement getX
}
那么你可以稱它為
new MineClass().print();
這很簡單。 當您擁有一個抽象類時,您將需要一個具體的類來對其進行擴展,從而可以@override
子類中的print()
方法,例如:
class ClassInChild extends ClassIn {
@override
public void print() {
System.out.println("new value = " + getX());
}
// mandatory because it is abstract
@override
public int getX() {
return 5;
}
}
ClassIn classIn = new ClassInChild();
classIn.print();
如果一切正常,您應該收到new value = 5
作為響應。
實例化抽象類是不可能的,您必須對其進行子類化才能使用其非靜態字段和方法。
new ClassOut().new ClassIn(){
public int getX() {
return 1;
}
}.print();
在這里,我完成了內部抽象類的匿名實現,以創建它的實例並調用實例方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.