美文网首页
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定义

接口的应用


接口与抽象类的区别

语法层面

接口与抽象类的区别

设计层面

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

相关文章

  • Android-知识点总结

    Java知识点 抽象类与接口的区别: 抽象类可以有方法的具体实现,接口不可以。 由于Java单继承的特性,子类只能...

  • java抽象类与接口的区别是什么?

    关于java抽象类与接口的文章早已是非常多了,本文是对我个人过往学习java的经验,理解及应用抽象类与接口的一个总...

  • 接口和抽象类有什么区别

    学习Java基础知识,打通面试关~十三接口与抽象类面试常客:谈谈你对抽象类和接口的理解 接口用interface修...

  • JAVA

    JAVA java中接口与抽象类的区别? 简述jvm的内存布局? java对象创建的过程? java重载与重写的区...

  • 【第7篇】Kotlin接口的详解

    1、接口 Kotlin 的接口与 Java 8 类似,既包含抽象方法的声明,也包含实现。与抽象类不同的是,接口无法...

  • 技术问 - 抽象类与接口有什么异同

    抽象类与接口的不同 抽象类与接口的相同

  • Java基础-抽象类和接口

    抽象类和接口也是 Java 面试中常考的,下面就来总结一下抽象类和接口的相关知识。 抽象类是类,Java 中类是单...

  • Java基础相关问题网址汇总

    java抽象类和接口联系与区别 http://www.cnblogs.com/azai/archive/2009/...

  • 谈谈 接口与抽象类

    话不多说,直奔主题。先聊一聊 接口与抽象类的区别: 用法不同。接口需要被实现,而抽象类需要被继承。在Java中是单...

  • JAVA中的抽象类和接口

    父类-抽象类:Telephone.java 接口:IPayGame.java 继承了抽象类的子类:CellPhon...

网友评论

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

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