Короткий ответ: Нет, вы не можете ссылаться на super
класс с помощью . Оператор из подкласса.
Long один: Если вы хотите получить доступ к методу экземпляра из супер class
, что неявный означает, что вы хотите получить доступ к методу, который уже метод экземпляра вашей class
(если этот метод не помечен как invisile для подписок классов, отмеченных таким образом одним из следующих уровней доступа private
или default
).
Это, как говорится, вы можете получить доступ к методу, вызвав его подпись:
public class A {
public int getOne() {
return 1;
}
}
public class B extends A {
public int getOneFromSuperClass() {
return getOne(); // here you are calling the method #getOne from superclass A
}
public static void main(String args[]) {
B b = new B();
b.getOneFromSuperClass();
}
}
Вы можете даже обратиться к методу с super
ключевого слова, если этот метод уже переопределен в подклассе:
public class A {
public int getOne() {
return 1;
}
}
public class B extends A {
public int getOne() {
return 2; // You catch it, this method returns 2 not like it seems to be doing
}
public int getOneFromSuperClass() {
return super.getOne(); // Yes we can call the super getOne method to get the correct item
}
public static void main(String args[]) {
B b = new B();
System.out.println(b.getOneFromSuperClass()); This will print 1 not 2
}
}
Вы даже можете вызвать метод super#getOne
используя B
ссылку, так как этот метод унаследовал от суперкласса:
public class A {
public int getOne() {
return 1;
}
}
public class B extends A {
public static void main(String args[]) {
B b = new B();
b.getOne();
}
}
Обратите внимание, что refence в B
класс используется для вызова метода, определенного в A
классе, просто потому, что этот метод унаследовал, а затем становится метод экземпляра B
, как это было определено там.
Вы спрашиваете или говорите? – Devavrata
На каком языке вы спрашиваете? – FatalError
@Devavrata спрашивает, FatalError JAVA –