慢慢的把理解不是很清楚的概念都用自己的话总结出来,加深印象
同时练习使用一下Markdown
- 被继承的类称为超类,或者父类
- 接口:一系列方法的声明,是一些方法特征的集合,他不是类。
so这些方法可以被不同的类实现,也可以由不同的类实现不同的功能,比抽象类更抽象。
[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 常量;
[public] [abstract] 方法;
}
修饰符:如果省略 则使用默认的访问权限,public。
接口名:必选参数。一般情况下,要求首字母大写。
extends 父接口名列表:可选参数。当使用extends关键字时,父接口名为必选参数。
方法:接口中的方法只有定义而没有被实现。
>>>与Java的类文件一样,接口文件的文件名必须与接口名相同
定义接口
public interface CalInterface
{
final float PI=3.14159f;//定义用于表示圆周率的常量PI
float getArea(float r);//定义一个用于计算面积的方法getArea()
float getCircumference(float r);//定义一个用于计算周长的方法getCircumference()
}
实现接口
class Cire implements CalInterface
{
public float getArea(float r)
{
//计算圆面积并赋值给变量area
float area=PI*r*r;
//返回计算后的圆面积
return area;
}
public float getCircumference(float r)
{
//计算圆周长并赋值给变量circumference
float circumference=2*PI*r;
//返回计算后的圆周长
return circumference;
}
public static void main(String[] args)
{
Cire c = new Cire();
Scanner in = new Scanner(System.in);
float f = in.nextFloat();
System.out.println(c.getArea(f));
}
}
一个.java文件中只能有一个类或接口被定义为public的,前面不能加public,不然报错
继承:和接口相比,类只能单继承,也就是说,一个类只能有一个超类,继承一个父类后,不能再继承其他的类,这样有时候就会显得很不方便,比如,有两个类A,B,其中A类中的有需要用到的学生姓名变量,B类中有需要用到的年龄变量,但是我需要用到这两个变量,我没法定义一个对象,来使用这两个变量,但是如果使用接口就可以了,我可以在接口中定义这两个变量,以后想要用到的话,只要让类实现这个接口就可以了,然后可以在类中实现这个方法,很简单。
接口把方法的特征和方法的实现分割开。抽象类:可以实现一部分方法,比如我想使每个继承抽象类A的类都有一个输出“你好”的方法,我可以直接在A中定义这个方法,然后在子类中直接调用这个方法。但是如果A是接口的话,如果想让每个实现A的类都输出“你好”,我必须在每个实现接口A的类中都定义这个输出“你好”的方法,这还只是让输出“你好”,如果实现其他复杂的功能,显然抽象类更方便一些。