美文网首页
Java——抽象类与接口

Java——抽象类与接口

作者: 蒙你应承 | 来源:发表于2018-08-13 15:42 被阅读0次

    抽象类

    抽象类的基本概念

    抽象方法
    在理解抽象类之前,先了解抽象方法,抽象方法是指只经过声明而未实现(没有方法体{})的方法,抽象方法定义时要使用abstract关键字。

    • 普通方法 public void example(){}
    • 抽象方法 public abstract void example();

    抽象类的最大特点是包含抽象方法,抽象类用abstract关键字定义。抽象方法必须在抽象类里面,而抽象类可以没有抽象方法

    抽象类的使用原则

    • 抽象类必须拥有子类,使用extends继承,一个子类只能继承一个抽象类
    • 子类(如果不是抽象类)必须覆写该抽象类的全部抽象方法
    • 抽象类对象不能被实例化,需要通过向上转型方式,利用子类进行实例化操作

    举个栗子

    //这是一个抽象类
    public abstract class A {
        public void print() {
            System.out.println("这是一个普通方法");
        }
        //定义抽象方法
        public abstract void get();
    }
    public class Impl extends A {
        @Override
        public void get() {
            System.out.println("这是一个抽象方法");
        }
    }
    public class TestDemo {
        public static void main(String[] args) {
            A a = new Impl();    //向上转型,通过子类来实例化抽象类对象
            a.print();
            a.get();
        }
    }
    

    抽象类的应用

    模板设计模式


    接口

    什么是接口

    如果一个类定义时全部由抽象方法和全局常量组成,那么这个类就称为接口,接口使用interface关键字

    接口的使用原则

    • 每一个接口必须定义子类,即接口的作用就是被实现,子类使用implements关键字实现接口
    • 接口的子类(如果不是抽象类),必须覆写接口里的全部抽象方法
    • 接口不能进行实例化,利用接口的子类,采用对象的向上转型方式,进行接口对象的实例化操作
    • 如果一个类既要实现接口又要继承抽象类,则先继承后实现
    • 接口的访问权限只有一种:public

    注意:接口不是类,一个用interface定义,一个用class定义

    接口的应用


    接口与抽象类的区别

    语法层面

    接口与抽象类的区别

    设计层面

    抽象类是对事物的抽象,即对类的抽象,接口是对行为的抽象

    相关文章

      网友评论

          本文标题:Java——抽象类与接口

          本文链接:https://www.haomeiwen.com/subject/krfubftx.html