I can't understand this segment of code
abstract class absc{
//int x;
void abscMethod(){
System.out.println("this is absc's method1");
}
absc(){
System.out.println("in the abstract class absc");
abscMethod();
abscMethod2();
}
abstract void abscMethod2();
}
class devFrabsc extends absc{
public devFrabsc(){
}
void abscMethod(){
System.out.println("this is devFrabsc's method1");
super.abscMethod();
}
public void abscMethod2(){
System.out.println("this is devFrabsc's method2");
//super.abscMethod2();
}
}
public class HelloDate {
public static void main(String[] args) {
devFrabsc f1 = new devFrabsc();
}
}
the result is :
in the abstract class absc
this is devFrabsc's method1
this is absc's method1
this is devFrabsc's method2
what I can't unserstand is "abscMethod() in the absc which is a abstract class is not an abstract method, so why when call abscMethod, the abscMethod of the derived class is called?
Thanks for your reply!

