接口和抽象类的区别

来源:互联网 发布:利乐公司待遇 知乎 编辑:程序博客网 时间:2024/06/08 04:37

抽象类:

-------不是具体的类(有的方法没有实现)

        1).抽象的方法-----只有行为的概念,没有具体的实现

(只有方法的声明,没有方法的实现,需要靠子类来实现)

格式:public abstract 返回值类型 方法名字(参数列表);

2).含有抽象方法的类,叫做抽象类

格式:abstrct class 类名{

}

3)抽象类的子类必须实现所有的抽象方法

4)抽象类只能被继承,一个具体的类来继承一个抽象类,并且实现抽象的方法

5)抽象类不能直接实例化,但可以使用父类声明指向子类对象


案例:

图形类Shape:抽象类

属性:point(x,y)

方法:1).求该图形的面积

    2)判断一个点point是否在图行的上面

    3)判断一个点(x,y)是否在图形上

园(circle):具体类,继承图形类,并且要实现其方法

public class Demo{
public static void main(String[] args) {
Circle c = new Circle();
System.out.println(c.mianji());
System.out.println(c.isShapePoint1(2, 3));
}
}
class Piont{
int x;
int y;
Piont(int x,int y){
this.x=x;
this.y=y;
}
}
abstract class Shape{
Piont piont;
abstract double mianji();
abstract String isShapePoint1(int x,int y);
}
 class Circle extends Shape{
double mianji=0;
//半径假设为10;
double R=2;
//圆心
Point point=new Point(1,1);
String isShapePoint1(int x,int y){
System.out.println(point.x);
return (Math.sqrt((x-point.x)*(x-point.x)+(y-point.y)*(y-point.y))<=R ? "yes" : "no");
}


@Override
double mianji() {
mianji=Math.PI*R*R;
return mianji;
}
 }



接口

(接口和接口可以实现多继承)

1).接口一般认为是一个特殊的抽象类
2).特点:接口中的方法全部都是抽象方法,接口中的属性全是常量

接口和抽象类的区别:
abstract class 类名{
属性
构造方法
一般方法
抽象方法
}

interface  接口名{
常量
抽象方法
}
Serializable----标识硬盘中的地址,实现序列化的接口(标识性接口,没有方法实现)

4).接口不能直接实例化,可以让实现类来实例化,接口跟实现类就是继承关系,实现接口的子类:必须要实现接口中所有的方法
5).接口可以使用上转型
6).java中类的继承单继承,接口实现多实现


0 0
原创粉丝点击