1.父类 Cal
public class Cal { protected int num1; //1.01 属性 protected int num2; public Cal(){} //2.01 0个参数的构造器,无返回值 public Cal(int num1) { //2.02 1个参数的构造器,无返回值 this.num1 = num1; } public Cal(int num1,int num2) { //2.02两个参数的构造器,无返回值 this.num1 = num1; this.num2 = num2; } public int getResult(){ //父类的方法 return 0; } }
2.子类Sub
public class Sub extends Cal { public Sub(){}; public Sub(int num1){ //调用父类的有1个参数的构造器,来造对象 super(num1); }; public Sub(int num1,int num2){ //调用父类的有两个参数的构造器,来造对象 super(num1,num2); }; @Override public int getResult(){ //这是子类构造的函数方法,重写 return num1 - num2; } }
3.子类Add
public class Add extends Cal{ public Add() { } //2.01 无参构造器,没有返回值 public Add(int num1) { //2.02 一个参数的构造器,没有返回值 this.num1 = num1; } public Add(int num1, int num2) { //2.02 两个参数的构造器 super(num1, num2); } @Override public int getResult(){ return num1 +num2; } }
4.使用
Cal cal = new Cal(14,15); System.out.println("构建父类之后的运行结果:"+cal.getResult()); Add cal01 = new Add(14,15);//这是重建的Add,我们用的是子类里面的方法 System.out.println("构建第一个子类之后的运行结果:"+cal01.getResult()); Sub cal02 = new Sub(59,26); System.out.println("构建第二个子类之后的运行结果:"+cal02.getResult());
运行结果:
构建父类之后的运行结果:0
构建第一个子类之后的运行结果:29
构建第二个子类之后的运行结果:33