Это мой код:
class base1 { } class der1 extends base1 { public static void main(String []args) { base1 b=new der1(); b.showTest(); } public void showTest() { System.out.println("Hello i am a derive class"); } }
не скомпилируется.
вам нужно showTest() в базовом классе, чтобы сделать его компилируемым
showTest()
base1 b = new der1 (); b.showTest ();
здесь b является ссылкой base, вам нужно showTest() в base во время компиляции, он проверит showTest() в base и во время выполнения из-за
b
base
base1 b=new der1(); он вызовет der1 версию showTest()
base1 b=new der1();
der1
См. Также
Метод showTest() определен в подклассе. Чтобы использовать его, вы должны:
1.- Объявить его в базовом классе
class base1 { public void showTest(){ } }
Или 2.- Объявить b как der1
public static void main( String [] args ) { der 1 b = new der1(); ...