Saya memiliki dua kelas Java: B, yang memperluas kelas A lainnya, sebagai berikut:
class A {
public void myMethod() { /* ... */ }
}
class B extends A {
public void myMethod() { /* Another code */ }
}
Saya ingin menelepon A.myMethod()
dari B.myMethod()
. Saya berasal dari dunia C ++ , dan saya tidak tahu bagaimana melakukan hal dasar ini di Java.
java
inheritance
methods
polymorphism
Creasixtine
sumber
sumber
Sebut saja menggunakan super.
public void myMethod() { // B stuff super.myMethod(); // B stuff }
sumber
Jawabannya adalah sebagai berikut:
super.Mymethod(); super(); // calls base class Superclass constructor. super(parameter list); // calls base class parameterized constructor. super.method(); // calls base class method.
sumber
super.MyMethod()
harus dipanggil diMyMethod()
dalamclass B
. Jadi seharusnya sebagai berikutclass A { public void myMethod() { /* ... */ } } class B extends A { public void myMethod() { super.MyMethod(); /* Another code */ } }
sumber
panggil super.myMethod ();
sumber
Saya cukup yakin bahwa Anda dapat melakukannya menggunakan mekanisme Java Reflection. Ini tidak semudah menggunakan super tetapi memberi Anda lebih banyak kekuatan.
class A { public void myMethod() { /* ... */ } } class B extends A { public void myMethod() { super.myMethod(); // calling parent method } }
sumber
Gunakan kata kunci super .
sumber
super.baseMethod(params);
panggil metode dasar dengan kata kunci super dan teruskan params masing-masing.
sumber
class test { void message() { System.out.println("super class"); } } class demo extends test { int z; demo(int y) { super.message(); z=y; System.out.println("re:"+z); } } class free{ public static void main(String ar[]){ demo d=new demo(6); } }
sumber
Lihat, di sini Anda menimpa salah satu metode kelas dasar sehingga jika Anda ingin memanggil metode kelas dasar dari kelas yang diwarisi maka Anda harus menggunakan kata kunci super dalam metode yang sama dengan kelas yang diwarisi.
sumber
Jika Anda menggunakan metode ini untuk inisialisasi, gunakan konstruktor kelas A dan berikan kata kunci super di dalam konstruktor kelas B.
Atau jika Anda ingin memanggil metode kelas super dari metode subkelas maka Anda harus menggunakan kata kunci super di dalam metode subkelas seperti: super.myMethod ();
sumber
// Using super keyword access parent class variable class test { int is,xs; test(int i,int x) { is=i; xs=x; System.out.println("super class:"); } } class demo extends test { int z; demo(int i,int x,int y) { super(i,x); z=y; System.out.println("re:"+is); System.out.println("re:"+xs); System.out.println("re:"+z); } } class free{ public static void main(String ar[]){ demo d=new demo(4,5,6); } }
sumber