类中方法分为构造方法和普通方法,对于有继承关系的类是如何调用构造方法和普通方法呢?
首先子类中调用构造方法和普通方法的实现是不一样的:
[构造器]调用
初始创建对象时,要先执行父类构造方法,然后执行子类构造方法;
[普通方法]调用
子类重写父类A方法,对象调用子类重写的父类方法;
未重写父类的方法,对象调用时子类直接调用父类的方法。
如下是代码实例
package test;
public class FatherClass {
public FatherClass(){
System.out.println("Father Class Constructor");
}
public void getMethodA(){
System.out.println("===Father Method A====");
}
public void getMethodB(){
System.out.println("===Father Method B====");
}
}
package test;
/**
* [构造器]调用
* 初始创建对象时,要先执行父类构造方法,然后执行子类构造方法;
* [普通方法]调用
* 子类重写父类A方法,对象调用子类重写的父类方法;
* 未重写父类的方法,对象调用时子类直接调用父类的方法;
*/
public class SonClass extends FatherClass {
public SonClass(){
System.out.println("Son Class Constructor");
}
@Override
public void getMethodA() {
System.out.println("==Son overrided Method A==");
}
public static void main(String[] args) {
SonClass methodTest=new SonClass();
methodTest.getMethodA();
methodTest.getMethodB();
}
}
运行截图