Java——抽象类和接口

这篇具有很好参考价值的文章主要介绍了Java——抽象类和接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.抽象类

1.概念:

2.语法 

3.特性 

2.接口  

1.概念

2.语法 

3.特性 


1.抽象类

1.概念:

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类

在这我们拿动物来举例Java——抽象类和接口,Java SE,java,开发语言,intellij-idea,经验分享 

这里的Animal是父类,但由于Animal不是一个具体的动物,所以bark()无法具体实现

Dog类与Cat类与Animal都是继承关系且是具体的动物,因此可以实现“汪汪汪”与"喵喵喵"

因此我们可以把Animal类设计为"抽象类"

像这种没有实际工作的方法, 我们可以把它设计成一个抽象方法(abstract method), 包含抽象方法的类我们称为抽象类(abstract class)

2.语法 

在Java中,一个类如果被abstract关键字修饰称为抽象类,抽象类中被abstract修饰的方法称为抽象方法,抽象方法不用给出具体的实现体

abstract class shape{
    abstract public void draw();
    abstract void calcArea();

    //抽象类也是类,也可以增加普通方法和属性
    public double getArea(){
        return area;
    }

    protected double area;//面积
}

3.特性 

1.抽象类不能直接实例化对象

2.抽象方法不能是private 

3.抽象方法不能被final和static修饰,因为抽象方法要被子类重写

4.抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,否则子类也是抽象类,必须使用abstract修饰 

5.抽象类中不一定包含抽象方法,但是有抽象方法的类一定是抽象类

6.抽象类中可以有构造方法,供子类创建对象时,初始化父类的成员变量

2.接口  

1.概念

在生活中我们可以看到很多接口如电脑的USB口,电源的插口......

接口就是公共的行为规范标准,大家在实现时,只要符合规范标准,就可以通用。

在Java中,接口可以看成是:多个类的公共规范,是一种引用数据类型

2.语法 

接口的定义格式与定义类的格式基本相同,将class关键字换成interface关键字,就定义了一个接口

interface IShape {
    void draw();
}
class Rect implements IShape {
    @Override
    public void draw() {
        System.out.println("画一个矩形!");
    }
}
class Triangle implements IShape {
    @Override
    public void draw() {
        System.out.println("画一个三角形!");
    }
}

public class Test4 {
    public static void drawMap(IShape iShape) {
        iShape.draw();
    }
    public static void main(String[] args) {
        //IShape iShape = new IShape();
        drawMap(new Rect());//画一个矩形!
        drawMap(new Triangle());//画一个三角形!
    }
}

注: 

1. 创建接口时, 接口的命名一般以大写字母 I 开头.

2. 接口的命名一般使用 "形容词" 词性的单词.

3. 阿里编码规范中约定, 接口中的方法和属性不要加任何修饰符号, 保持代码的简洁性 

3.特性 

1.接口的定义可以使用interface定义

2.接口当中的成员变量默认为public static final修饰的,定义的时候必须初始化

3.接口当中的方法默认是public abstract修饰的,你不写的时候也是抽象方法,所以不能有具体的实现

4.接口当中使用default修饰的方法和static修饰的方法是可以有具体的实现的!

5.接口不可以被实例化

6.接口需要被类实现,此时使用关键字implements来实现 class A implements IShape()

7.当一个类实现了一个接口,那么此时这个类就要重写这个方法

8.接口也可以发生向上转型,也可以发生动态绑定,也可以发生多态! 


如果上述内容对您有帮助,希望给个三连谢谢!

Java——抽象类和接口,Java SE,java,开发语言,intellij-idea,经验分享文章来源地址https://www.toymoban.com/news/detail-848874.html

到了这里,关于Java——抽象类和接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java】抽象类和接口

    在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的, 如果一个类中没有包含足够的信息来描绘一个具体的对象,那么这样的类就是抽象类 在Java中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法

    2024年02月05日
    浏览(47)
  • Java抽象类和接口【超详细】

    在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的, 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类 。 比如: 在打印图形例子中, 我们发现, 父类 Shape 中的 draw 方法好像并没有什么实际

    2024年02月14日
    浏览(49)
  • Java中抽象类和接口的区别

    定义上来看,被abstract修饰的类称为抽象类。被abstract修饰的方法称为抽象方法。当父类的某些方法,需要声明,但是又不确定如何实现时,可以将其声明为抽象方法,那么这个类就是抽象类.例: 特征: 抽象类不可以实例化,可以被继承,可以看作是对类的进一

    2024年02月16日
    浏览(41)
  • Java中抽象类和接口的区别?

    抽象类是对具体概念的抽象 抽象类本质是为了继承 只能被public或默认修饰 行为层面抽象出来抽象方法 抽象类的注意事项 抽象类不可以被直接实例化 抽象类中可以存在构造方法 抽象类可以存在普通方法 抽象方法的注意 抽象方法必须定义在抽象类中 仅声明 实现需要交给子

    2023年04月26日
    浏览(85)
  • Java抽象类和接口的详细区别(全)

    这两者经常在笔试以及面试中经常问及,甚至在项目实战中还在纠结用哪一种类型 今天就此问题详细剖析一下 以往我的文章中也有稍微提及: java框架零基础从入门到精通的学习路线(超全) 此处将其这些文章抽离公共部分,详细总结下这两概念 抽象类是类和类之间的共同

    2024年02月08日
    浏览(42)
  • 图灵日记之java奇妙历险记--抽象类和接口

    在面向对象的概念中,所有对象都是通过类来描述的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息描绘一个具体的对象,这样的类就是抽象类 使用abstract修饰的方法称为抽象方法 使用abstract修饰的类称为抽象类 抽象类是不可以进行实例化的

    2024年02月03日
    浏览(49)
  • Java中抽象类和接口的区别,一文弄懂,图文并茂

    前言 1. 抽象类 1.1 定义 1.2 示例 1.3 使用 1.3.1代码-抽象类 1.3.2代码-抽象类继承类使用 1.3.3输出结果为: 1.4UML类图展示类间的关系 2. 接口 2.1 定义 2.2 示例 2.2.1代码-接口 2.3 使用 2.3.1代码-接口实现 2.3.2代码-接口实现类使用 2.3.3输出结果为: 2.4UML类图展示类间的关系 3. 抽象类和

    2024年02月04日
    浏览(48)
  • 分分钟搞定Java中的抽象类和接口!!!(abstract & interface)

    1.抽象类的定义 概述: 我们创建一个动物类,并且在这个类中创建动物对象,但是当你提到动物类,你并不知道我说的是什么动物,只有看到了具体的动物,你才知道这是什么动物,所以说动物本身并不是一个具体的事物,而是一个抽象的事物。只有真正的猫,狗才是具体的

    2024年02月01日
    浏览(45)
  • 【Java SE】类和对象(下)

    接着上文 目录 6. 封装  6.1 封装的概念  6.2 访问限定符 6.3 封装扩展之包 6.3.1 包的概念 6.3.2 自定义包 6.3.3 导入包中的类 6.3.4 包的访问权限控制举例 6.3.5 常见的包  7. static成员 7.1 static修饰成员变量 ​编辑 ​编辑 7.2 static修饰成员方法 8. 代码块 8.1 代码块概念以及分类  

    2024年02月05日
    浏览(43)
  • 【Java SE】类和对象(上)

    目录 一. 面向对象的初步认知 1.1 什么是面向对象 1.2 面向对象与面向过程 二. 类定义和使用 2.1 简单认识类  2.2 类的定义格式 三. 类的实例化  3.1 什么是实例化  3.2 实例化对象  四. this引用(重点)  4.1 为什么要有this引用  4.2 this的使用 4.3 this引用的特性 五.对象的构造及初

    2024年02月03日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包