接口,抽象
2018-12-03 本文已影响4人
_narcissus
- interface(接口)和 abstract(抽象)都是为了做一件事,那就是将方法与方法体(实现)分离。有什么实际意义,分工合作吧。
- 但是又有自己的特点,不然就叫一个名得了。
public abstract class Calculate {
double num1;
double num2;
public abstract void add(double num1,double num2);
public abstract void sub(double num1,double num2);
public abstract void mul(double num1,double num2);
public abstract void div(double num1,double num2);
public abstract void mod(double num1,double num2);
}
public class Method extends Calculate{
public void add(double num1,double num2) {
System.out.println(num1+num2);
}
public void sub(double num1,double num2){
System.out.println(num1-num2);
}
public void mul(double num1,double num2){
System.out.println(num1*num2);
}
public void div(double num1,double num2){
System.out.println(num1/num2);
}
public void mod(double num1,double num2){
System.out.println(num1%num2);
}
}
抽象类不能实例化为对象,但是被继承后就好说话了,继承后的类就和普通的类一样了,可以实例化。然后调用这些方法
import java.util.Scanner;
public class Cal {
public static void main(String[] args) {
Method method = new Method();
double num1=0,num2=0;
int choose=1;
for(;;) {
try {
Scanner scanner = new Scanner(System.in);
System.out.println("输入第一个数值");
num1 = scanner.nextDouble();
System.out.println("输入第二个数值");
num2 = scanner.nextDouble();
System.out.println("1.+ 2.- 3.* 4./ 5%");
choose = scanner.nextInt();
} catch (Exception e) {
System.out.println("输入不正确");
}
switch (choose) {
case 1:
method.add(num1, num2);
break;
case 2:
method.sub(num1, num2);
break;
case 3:
method.mul(num1, num2);
break;
case 4:
method.div(num1, num2);
break;
case 5:
method.mod(num1, num2);
break;
}
}
}
}
接口?差不多。区别就这么点
interface Calculate {方法名}
public class Method implements Calculate{方法体}
不过,抽象类里还可以有自己的方法体,而接口就纯接口,抽象类只能被一个继承,而接口可以被很多去实现。
快下课了,回去了!