package interfacedemo;
/**
定义一个接口,并定义相应的类来实现实现接口中的方法
*/
public interface Circle {//定义接口
double PI = 3.1415;// 定义常量
void setRadius(double radius);// 定义抽象方法
double area();// 定义抽象方法
}
package interfacedemo;
public class CircleImpl implements Circle {
double radius;// 定义成员变量
public void setRadius(double radius) {// 实现接口的setRadius方法
this.radius = radius;
}
public double area() {// 实现接口中的方法
return (radius * radius * PI);
}
}
package interfacedemo;
public class CircleTest {
public static void main(String[] args) {
CircleImpl ci = new CircleImpl();// 创建类对象
ci.setRadius(2);// 设置半径
System.out.println("圆的面积:" + ci.area());
}
}
/*java 不支持多继承,如果希望一个类能同时继承两个以上的父类
*可以使用接口(interface)来实现多继承的效果
*接口是一种纯粹的 抽象类,只 包含了抽象方法和常量的定义
*抽象方法必须由其子类来实现implement,才能赋予新的功能
*子类实现接口,使用implement关键字,可以实现多个接口,接口名之间用逗号隔空
*
*
*接口与抽象类的区别:
*1.接口是纯粹的抽象类,接口中所有 的方法都是抽象的(只有声明,没有定义),而抽象类允许包含有定义的方法
*2.子类实现 接口用implement, 继承 抽象类用extends关键字
*3.子类可以 实现 多个接口,但只能继承一个抽象类
*4.一个子类如果实现了一个接口,就必须重写这个接口里所有的方法;
* 抽象类的子类可以不重写抽象父类里的所有方法,但这个子类会自然成为抽象类
*/