public class Huluxia extends User{ // final // 使用final修饰的类不能有子类 // 使用final修饰的方法不能被子类重写 // 使用final修饰的变量是常量,不能被修改 // 一般来说常量是需要大写的,我这里就不大写了,主要是为了方便 private static final Huluxia huluxia = new Huluxia();
public static void main(String[] args) { huluxia.a(); } public void a(){ // 为父类属性赋值 // super可以调用父类的属性和方法 // this和super的区别 // this 访问本类的属性如果没有,则从父类查找 // super 直接访问父类 // this 访问本类的方法如果没有,则从父类查找 // super 直接访问父类 // this 调用本类构造方法,必须放在构造方法首行 // super 调用父类构造,必须放在子类构造方法首行 super.setName("凯特社区"); super.setAge(5); // 如果没有重写父类方法,默认调用父类的方法 // 如果重写了父类方法,那么就调用子类重写的方法 huluxia.f(); } //重写父类方法 // 注意点 // 子类重写的方法权限不能比父类严格 @Override public void f() { huluxia.setName("修改器"); huluxia.setAge(5); System.out.println("子类重写父类方法的"+huluxia.getName()+"今年"+huluxia.getAge()+"岁了"); } // 错误写法 // 父类是public 所以子类不能比public严格 // @Override // private void f() { // huluxia.setName("修改器"); // huluxia.setAge(5); // System.out.println("子类重写父类方法的"+huluxia.getName()+"今年"+huluxia.getAge()+"岁了"); // } }
第二部分 实现接口和测试 public class CalculateImpl implements Calculate { @Override public R add(int a, int b) { if(a>=Integer.MAX_VALUE){ return new R(202,"数值太大",0.0); } if(b>=Integer.MAX_VALUE){ return new R(202,"数值太大",0.0); } double c = a+b; return new R(200,"计算成功",c); }
@Override public R subtract(int a, int b) { if(a>=Integer.MAX_VALUE){ return new R(202,"数值太大",0.0); } if(b>=Integer.MAX_VALUE){ return new R(202,"数值太大",0.0); } double c = a-b; return new R(200,"计算成功",c); }
@Override public R ride(int a, int b) { if(a>=Integer.MAX_VALUE){ return new R(202,"数值太大",0.0); } if(b>=Integer.MAX_VALUE){ return new R(202,"数值太大",0.0); } double c = a*b; return new R(200,"计算成功",c); }
@Override public R except(int a, int b) { if(a>=Integer.MAX_VALUE){ return new R(202,"数值太大",0.0); } if(b>=Integer.MAX_VALUE){ return new R(202,"数值太大",0.0); } if(b==0){ return new R(202,"除数不能为0",0.0); } double c = a/b; return new R(200,"计算成功",c); } }
public class Huluxia{ public static void main(String[] args) {
Scanner c = new Scanner(System.in);
CalculateImpl ca = new CalculateImpl();
System.out.println("输入第一个数字:"); int a=c.nextInt(); System.out.println("输入运算符号(+-*/):"); String d=c.next(); System.out.println("输入第二个数字:"); int b=c.nextInt();
举报 0