java学习笔记(十六)抽象类与接口

来源:互联网 发布:无人机数据下载 编辑:程序博客网 时间:2024/06/07 05:20

抽象类与接口

抽象类

抽象类特点:

    A:抽象类和抽象方法必须用abstract关键字修饰    B:抽象类不一定有抽象方法,有抽象方法的类一定是抽象类    C:抽象类不能实例化        那么,如果实例化并使用呢?        按照多态的方式,由具体的子类实例化。其实这也是多态的一种,抽象类多态。    D:抽象类的子类        要么是抽象类        要么重写抽象类中的所有抽象方法

抽象类的作用:

    强制要求子类必须要重写某些方法。    

抽象类的成员:

    成员变量:可以是变量,也可以是常量。    构造方法:有构造方法        不能实例化,构造方法有什么用呢?        用于子类访问父类数据的初始化。    成员方法:既可以是抽象的,也可以是非抽象的。

接口

认识接口:不是我们现实生活中的usb接口等等实物的接口,类实现接口代表着这个类自身功能的一种扩展,所以接口代表着一种扩展的能力
接口的特点:

    A:定义接口要用关键字interface表示        格式:interface 接口名 {}    B:类实现接口用implements表示            格式:class 类名 implements 接口名 {}    C:接口不能实例化        那么,接口如何实例化呢?        按照多态的方式,由具体的子类实例化。其实这也是多态的一种,接口多态。    D:接口的实现类        要么是抽象类        要么重写接口中的所有抽象方法

多态的前提:

    A:有继承或者实现关系    B:有方法重写    C:有父类引用或者父接口引用指向子类或者实现类对象

多态分类:

    A:具体类多态    B:抽象类多态    C:接口多态  

接口的成员特点:

    A:成员变量        只能是常量。        默认修饰符:public static final    B:构造方法        没有构造方法    C:成员方法        只能是抽象方法。        默认修饰符:public abstract
interface inter{    public static final int num = 20;    //接口中不能存在构造方法    //public inter(){}    //接口中的所有方法都是抽象方法    public abstract void show();}//定义一个类实现这个接口class InterImpl implements inter{    public void show() {        System.out.println("来自接口中扩展的抽象方法");    }   }//定义一个抽象类,让这个抽象类实现接口,此时这个抽象类不需要重写接口中的抽象方法abstract class AbstractInterImpl implements inter{}public class InterfaceDemo {    public static void main(String[] args) {        //利用多态的方式将接口进行实例化        inter i = new InterImpl();        //试图更改成员变量的值        //i.num = 30;//接口中所有的变量都会默认被final修饰,所以我们的接口中说白了只能定义常量,不能定义变量        //System.out.println(i.num);        System.out.println(inter.num);    }}
0 0
原创粉丝点击