接口(interface)

什么是接口?

接口时抽象方法的合集。接口不可以被直接被实例化。

为什么要使用接口?

  1. 为了扩展。Java不支持多继承,但是通过接口就可以实现“多继承”
  2. 制定规则。接口就是规则,规定了一个类必须有哪些方法。领导制定规则,底下的程序员只需实现接口就制定需要有哪些方法了。

接口使用的注意事项?

  1. 接口属性默为public static fianl
  2. 接口方法默认为public abstract
  3. 接口中中静态方法必须要有方法体
  4. 接口不能直接被实例化(必须实现方法)

 

接口被实现以后可以被实例化

 1 public interface Interface02 {
void method2_1();
} Interface02 interface02 = new Interface02() {
@Override
public void method2_1() { }
};
interface02.method2_1();

什么是抽象类?

抽象类:类中没有包含足够信息来描述一个具体对象。

抽象和普通类一样具有成员变量,成员方法,构造方法等。

为什么要使用抽象类?

使用抽象类可以定义一个不确定的某些具体方法内容的类。

抽象类的使用注意事项?

  1. abstract可以修饰类和方法
    1. 被abstract修饰的类为抽象类。
    2. 被abstract修饰的方法为抽象方法。 
  2. 抽象类中没有抽象方法依然是抽象类,还是不能被直接实例化需要被继承,然后通过子类实例化
  3. 抽象类中既可以有抽象方法也可以有非抽象方法。
     public abstract class AbstractClass02 {
    void method2_1(){ }
    void method2_2(){ }
    void method2_3(){ }
    
    
  4. abstract不能和private、final、static连用。可以和protected连用。

  5. 接口必须实现接口中所有的方法

 public abstract class AbstractClass02 {
void method2_1(){ }
void method2_2(){ }
void method2_3(){ }
abstract void method2_4(); } abstract class Test03 extends AbstractClass02{ }

接口与抽象类的相同点和区别?

相同点:

  1. 都是抽象的,不能直接实例化。

区别:

  1. 抽象类可以有普通成员变量,接口只能由类变量
  2. 抽象方法可以包含普通带方法体的方法。接口只有静态方法包含方法体。
  3. 接口可以多继承,抽象方法不可以
  4. 实现接口的类必须实现所有方法。抽象类可以不实现所有方法,定义一个新的抽象类就行了。

Java基础——接口和抽象类的更多相关文章

  1. Java基础接口和抽象类区别(二)

    抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: 抽象方法必须用abstract关键字进行修饰.如果一个类含有抽象方法,则 ...

  2. java基础——接口与抽象类的区别

    (1)首先接口和抽象类的设计目的就是不一样的.接口是对动作的抽象,而抽象类是对根源的抽象. (2)对于抽象类,一个类只能继承一个抽象类.但是一个类可以同时实现多个接口. (3)接口是公开的,里面不能有 ...

  3. Java基础--接口和抽象类的区别

    任何不谈使用方法的空理论都是耍流氓 使用场景 · 如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类吧(Java1.8中接口也可以这么做了) · 如果你想实现多重继承,那么你必须使用接口 ...

  4. 慢慢人生路,学点Jakarta基础-深入剖析Java的接口和抽象类

    在java面向对象编程的,抽象类和接口始终存在有疑问的地方,因为两者太多相似有太多不同,在刚开始学习的时候经常弄的不对,使用情景搞混,今天来总结之前学习Java中接口和抽象类的问题. 抽象类 了解:只 ...

  5. Java中接口和抽象类的比較

    Java中接口和抽象类的比較-2013年5月写的读书笔记摘要 1. 概述 接口(Interface)和抽象类(abstract class)是 Java 语言中支持抽象类的两种机制,是Java程序设计 ...

  6. 深入理解Java的接口和抽象类(转)

    深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...

  7. 深入理解Java的接口和抽象类

    深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...

  8. [转载]深入理解JAVA的接口和抽象类

    深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...

  9. 深入理解Java的接口和抽象类 _摘抄

    http://www.cnblogs.com/dolphin0520/p/3811437.html 原文 深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可 ...

随机推荐

  1. 部署kibana节点

    部署Kibana节点 1.查看系统环境: [root@Kibana ~]# hostname Kibana [root@Kibana ~]# cat /etc/redhat-release CentO ...

  2. mybatis+mysql批量插入和批量更新

    一.批量插入 批量插入数据使用的sql语句是: insert into table (字段一,字段二,字段三) values(xx,xx,xx),(oo,oo,oo) mybatis中mapper.x ...

  3. 避免Double数据显示为科学记数

    显示现象     数据类型 实体类中为 private Double tradeAmount; Oracle数据库中为  NUMBER(19,4) 解决方式 第一种解决方式 - 无效 将Double转 ...

  4. Oracle 后台进程(三)LGWR进程

    一.LGWR进程简介 LGWR,是Log Writer的缩写,也是一种后台进程.主要负责将日志缓冲内容写到磁盘的在线重做日志文件或组中.DBWn将dirty块写到磁盘之前,所有与buffer修改相关的 ...

  5. 手写alert弹框(一)

    采用原生的JavaScript, html代码 <meta name="viewport" content="width=device-width, initial ...

  6. 记录下我用Jenkins打包碰到的坑

    使用Andorid Studio 打包都是正常的,但是使用Jenkins自动打包一直报错,尝试过网上的各种方案,依然都不行,报错如下. FAILURE: Build failed with an ex ...

  7. fluent中隐藏模型的开启【转载】

    转载自:http://blog.sina.com.cn/s/blog_5fd791530100d5ic.html fluent中设置了一些隐藏模型,普通的用户界面是没有相关选项的,必须用相关命令开启. ...

  8. Hadoop环境搭建|第一篇:linux操作系统安装

    一.安装工具及文件 优盘:8G(非kingston优盘) 制作启动盘工具:Universal_USB_Installer 操作系统:CentOs操作系统 二.注意事项 安装过程的详细步骤,这里就不再赘 ...

  9. docker 容器内部访问宿主机

    在宿主机执行: ifconfig 然后查看 docker0 的那个网卡的 ip 地址,比如我的是 172.18.0.1

  10. springboot项目报Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is`...解

    参考文章:https://blog.csdn.net/qq_42815754/article/details/83652253 <!-- MySql驱动 --> <dependenc ...