先扯一点别的东东
修饰符
1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用
2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用。
3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private
接口
接口是一种引用类型。借口是若干完成某一特定功能的没有方法体的方法和有名常量的集合。
- 接口是用来实现类间多重继承的结构
- 接口仅仅提供功能定义(接口是抽象方法(没有方法体)说明的集合,它描述应该做什么,但不涉及怎么做)
多继承是指一个子类可以有一个以上的直接父类;
接口是JAVA语言实现多重继承的唯一途径
接口只包含有名常量和没有实现的抽象方法;
关键字interface
package leiduixiang;
interface Ishape{
double PI = 3.1415;//有名常量必须边定义边赋值,因为接口没有初始化块
abstract double getArea();
abstract double getPerimeter();
}
abstract class bbb implements Ishape{
double Sidelength;
/*public getSidelength(double SideLength){
this.Sidelength = SideLength; //抽象类不能写方法体,所以会爆红,又犯错误了
}*/
public double getSidelength(double Sidelength) {
return Sidelength;
}
public double getArea(){ //必须public 修饰
return Sidelength*Sidelength;
}
}// 可以只写一个接口中的方法,前提是这是一个抽象类;
class Circlee implements Ishape{
double radius;
Circlee(double radius){this.radius = radius;}
@Override
public double getArea() { //必须public 修饰
return PI*radius*radius;
}
@Override
public double getPerimeter() { //必须public 修饰
return 2*PI*radius;
}
}
public class Jiekou {
public static void main(String[]args){
System.out.println(new Circlee(2.3).getArea());
System.out.println(new Circlee(5.3).getPerimeter());
}
}
类和接口的区别
-
一个类有且只能有一个超类(object除外,他没有父类),而一个接口可以有多个直接超接口(也可以没有)
-
所有的类有一个共同的根类(object),而接口没有这样一个共同的超接口。
-
类只能使用单继承,而接口实现了多重继承。
-
类有变量、初始化块、构造方法和实现方法,而接口没有变量、初始化块、构造方法和实现方法。
-
类(不含抽象类)可以直接创建对象,而接口不能直接创建对象(要被”实现”)。(抽象类要被继承)
接口的实现 -
在类定义中,用implement 声明该类将要实现那些接口。
-
实现的方法必须指定为public修饰符。 否则,会认为缩小了方法访问权限。
-
类(除了抽象类)中必须具体实现该interface中定义的所有抽象方法;如果不需要某个方法,则也要定义为空方法。
-
如果实现类的是抽象类,那么可以不用全部实现接口中的方法。
抽象类与接口的关系 -
抽象类可以含有非抽象方法;接口只能含有抽象方法。
-
抽象类是类,只能单继承;接口可以多重继承
-
抽象类通过extends来派生子类;接口通过implement来实现。
-
一个类只能够继承一个接口;却能够同时实现多个接口。
-
相同点:多是通过对抽象方法的覆盖来定义方法体,都不能直接创建对象。
接口的继承和组合
接口可以通过关键字extends继承其他接口。子接口将继承父接口中所有的常量和抽象方法。此时,子接口的派生类如果不是抽象类,不仅需要实现子接口的抽象方法,还需要实现继承来的抽象方法,不允许存在未被实现的抽象方法。