专栏首页Java患者Java基础知识(五)--抽象类&接口

Java基础知识(五)--抽象类&接口

抽象类

抽象类概述

  • 抽象类用来描述一种类型应该具备的基本特征与功能,具体如何去完成这些行为由子类通过方法重写来完成.

抽象类特点

  • 抽象类和抽象方法必须用abstract关键字来修饰
  • 抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者是接口
  • 抽象类不能实例化,那么抽象类如何实例化?
    • 按照多态的方式,由具体的子类实例化.其实这也是多态的一种,抽象类多态.
  • 抽象的子类
    • 要么是抽象类
    • 要么重写抽象类中的所有抽象方法

抽象类的成员特点

  • 成员变量 : 既可以是变量,也可以是常量.abstract是否可以修饰成员变量?不能修饰成员变量
  • 构造方法 : 有
    • 用于子类访问父类数据的初始化
  • 成员方法: 既可以是抽象的,也可以是非抽象的.

抽象类的成员方法特性

  • 抽象方法: 强制要求子类做的事情
  • 非抽象方法: 子类继承的事情,提高代码复用性
  • abstract不能和哪些关键字共存
    • private : 因为一个abstract方法需要被重写
    • final: 因为一个abstract方法需要被重写,被final修饰的方法是不能被重写的
    • static : 因为一个abstract方法没有方法体.静态方法需要对方法体执行内容分配空间(abstract是没有实现的,不能产生对象,而static是属于类的,类本身是已经存在的对象)
    • synchronized : 是同步的,然而同步需要具体的操作才能同步(即使用synchronized 关键字是需要有具体的实现同步的操作的)
    • native: 他们本身的定义就是冲突的.native声明的方法是移交本地操作系统实现的,而abstract是移交子类对象实现的,同时修饰的话,导致不知道谁实现声明的方法.

接口

接口概述

  • 从狭义的角度讲就是指java中的interface
  • 从广义的角度讲对外提供规则的都是接口

接口特点

  • 接口不能实例化
    • 按照多态的方式来实例化
  • 接口的子类
    • 可以是抽象类,但是意义不大
    • 可以是具体类,要重写接口中所有抽象方法

接口的成员特点

  • 成员变量 : 只能是常量,并且是静态的跟公共的
    • 默认修饰符 : public static final
  • 构造方法 : 接口没有构造方法
  • 成员方法:只能是抽象方法
    • 默认修饰符: public abstract

本文分享自微信公众号 - Java患者(gh_3a16ffdedb6a),作者:Zero

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-05-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java基础-抽象类和接口

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

    Wizey
  • Java基础5:抽象类和接口

    https://github.com/h2pl/MyTech 文章首发于我的个人博客:

    黄小斜学Java
  • 【编程基础】Java的接口和抽象类

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

    程序员互动联盟
  • 学习Java基础知识,打通面试关~十二接口与抽象类

    用户2196435
  • JAVA基础 | java基础4(JAVA继承、JAVA多态、抽象类、接口)

    super 表示使用它的类的父类。super 可用于: 1.引用父类对象的成员变量 super.age;

    网络技术联盟站
  • Java-抽象类&接口

    abstract: 关键字,用于修饰方法和类 抽象方法: 不同类的方法是相似的,但是具体内容又不太一样,所以我们智能抽取它的申明,没有具体的方法体,没有具体方...

    DataScience
  • Java 抽象类、接口

    (1) 抽象类和抽象方法都必须用 abstract 关键字来修饰。 (2) 抽象类不能被直接实例化,也就是不能用new关键字去产生对象。 (3) 抽象方法只...

    Michael阿明
  • Java基础10 接口的继承与抽象类

    在实施接口中,我们利用interface语法,将interface从类定义中独立出来,构成一个主体。interface为类提供了接口规范。

    Java团长
  • Java 基础巩固:再谈抽象类和接口

    文章出自:安卓进阶学习指南 主要贡献者: Milo Struggle shixinzhang 背景介绍 ? 大家好,这篇文章是 《安卓进阶技能树计划》 的...

    张拭心 shixinzhang
  • Java基础10 接口的继承与抽象类

    在实施接口中,我们利用interface语法,将interface从类定义中独立出来,构成一个主体。interface为类提供了接口规范。 在继承中,我们为了提...

    Vamei
  • 【java基础】-- java接口和抽象类的异同分析

    定义public int number =0;默认是final修饰的,所以也不能改变它的值:

    秦怀杂货店
  • java基础-抽象类抽象方法

    你好! 这篇文章将讲述java中的抽象类和抽象方法的知识点,这个是最简单的,也是最容易被遗忘的。

    编程大道
  • [ Java学习基础 ] Java的抽象类与接口

    Kevin_Zhang
  • 【一分钟知识】多态、抽象类与接口

    1、构造器(constructor)是否可被重写(override) 构造器不能被继承,因此不能被重写, 可以被重载 2、eqauls方法和hashCode方法...

    java思维导图
  • php抽象类和接口知识点整理总结

    定义:一个方法如果没有方法体(一个方法,不使用{},直接使用分号结束的方法,才是没有方法体的方法),则这个方法就是抽象方法。

    砸漏
  • Java面向对象之抽象类,接口

    抽象类: 含有抽象方法的类被声明为抽象类 抽象方法由子类去实现 含有抽象方法的类必须被声明为抽象类 抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中...

    二十三年蝉
  • 第二十八节:Java基础-进阶继承,抽象类,接口

    在子类和父类中都有构造函数,运行时,先执行父类中的构造函数,在执行子类的构造函数,因为子类的所有构造函数中第一行都有一句,隐式的super();,表示为调用父类...

    达达前端
  • Java基础系列4:抽象类与接口的前世今生

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形...

    说故事的五公子
  • Java抽象类与接口的区别

    很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们将仔细讨论这些话题。

    Java团长

扫码关注云+社区

领取腾讯云代金券