您的位置:首页 > 编程语言 > Java开发

java 继承与多态之抽象类和接口

2017-10-31 15:40 309 查看
抽象类:用 abstract 声明的类
1、抽象类不能生成对象,其子类可以生成对象,但必须重写抽象父类的抽象方法
2、如果一个类中含有抽象方法,那么该类必须声明为抽象类
3、如果一个类中没有抽象方法,该类也可以声明为抽象类

4、抽象的构造方法可以在子类中被调用

public abstract class AbstractClass
{
private int num1; //普通变量

private final int num2; //常量

public AbstractClass()
{
//构造函数
}

public void method1()
{
//普通方法1
}

public void method2()
{
//普通方法2
}
..............

public abstract void abstractMethod1(); //抽象方法1

public abstract void abstractMethod2(); //抽象方法2

..............
}


接口:使用 interface 定义

    1、接口中的方法都是抽象的,其实现类必须要重写所有的方法

    2、接口中所有的方法都是 public 权限的

    3、接口中的变量默认都是 final 型,并且是静态的

    4、实现接口用 implement

    5、接口没有构造方法

public abstract class AbstractClass
{
private int num1; //普通变量

private final int num2; //常量

public AbstractClass()
{
//构造函数
}

public void method1()
{
//普通方法1
}

public void method2()
{
//普通方法2
}

..............

public abstract void abstractMethod1(); //抽象方法1

public abstract void abstractMethod2(); //抽象方法2

..............
}


抽象类和接口的区别:
1、成员区别

    抽象类:

        成员变量:可以为变量,也可以为常量

        构造方法:有,但不可以实例化

        成员方法:既可以为抽象,也可以为非抽象

    接口:

        成员变量:静态常量

        构造方法:无

        成员方法:只能是抽象

    2、关系区别

        类与类:单继承,即一个类只能继承一个类

        类与接口:多实现,即一个类可以实现多个接口

        接口与接口:多继承,即一个接口可以继承多个接口

    3、设计理念

        抽象类被继承体现的是“is a”关系,抽象类中定义的是该继承体系的共性功能

        接口被实现体现的是“like a”关系,接口定义的是该继承体系的扩展功能
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐