JAVA-抽象类和接口

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

文章目录

前言

1.1抽象类的概念

1. 2抽象类的语法

1.3抽象类的特性

1.3.1抽象类不能直接实例化对象

1.3.2抽象方法不能被private,final和static修饰

1.3.3 抽象类的子类要么也是抽象类,要么重写所有抽象方法

1.4抽象类的作用

2.1 接口的概念

2.2 语法规则

2.3 接口的使用

 2.4 接口的特性

2.5 接口的多实现和接口间的多继承

2.6 抽象类和接口的区别

总结



前言

大家好呀,今天给大家带来抽象类和接口的讲解,那么废话不多说,跟着我一起去学习吧!

JAVA-抽象类和接口


1.1抽象类的概念

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

下面我们定义父类Animal和子类Dog,Cat来画图解释一下

public class Test {
    public static void main(String[] args) {
        Dog dog = new Dog();
        Cat cat = new Cat();
        
        dog.bark();// 狗叫
        cat.bark();// 猫叫
    }
}

abstract class Animal{
    /*
    * Animal是动物类,每个动物都有叫的方法。
    * 但由于Animal不是具体的动物,所以叫的方法无法具体实现
    * 那么我们该在方法中写什么好?
    * 写什么都是没用的,因为父类Animal的bark方法无法描述所有动物的叫!
    * 狗和猫的叫不同,狮子和大象等都不同
    * 那么既然无法实现,不如直接定义为抽象类!让子类重写抽象方法
    * 让子类自己去实现方法!
    * */
    public abstract void bark();
}

class Dog extends Animal{

    @Override
    public void bark() {
        System.out.println("狗叫");
    }
}

class Cat extends Animal{

    @Override
    public void bark() {
        System.out.println("猫叫");
    }
}

1. 2抽象类的语法

在Java中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽象方法不用给出具体的实现(既不需要方法体)。

JAVA-抽象类和接口

 抽象类也是类的一种,也是可以有普通成员变量和方法

JAVA-抽象类和接口

1.3抽象类的特性

1.3.1抽象类不能直接实例化对象

抽象类无法描述具体的对象,实例化没有意义,所以java不允许实例化

JAVA-抽象类和接口

这是语法,理解着去记,实例化出来也没用那为何要实例化呢?

这时候可能就有人说了,我如果就要实例化呢?

在这里我送你两句话

1.想写bug没人能拦你,JAVA-抽象类和接口

2.不过既然你问了这个问题,我还是会给出解决办法地,可以用匿名内部类(本质上其实就是重写了抽象方法)


1.3.2抽象方法不能被private,final和static修饰

private是访问修饰限定符,被修饰后抽象方法只能在本类中才有权限访问

举个例子吧,从前有个小孩叫张三,张三的爸爸叫李四,李四有一笔私房钱,那么请问,李四构不构成犯罪?

好吧扯远了,张三可以用李四的压岁钱吗?

我明确地告诉你,不可以,因为李四的money是私有的,只能李四自己用!


final修饰的方法表示最终的方法,不能重写


JAVA-抽象类和接口

static为什么不能修饰抽象方法?

不知阁下可否知道static修饰的是东西属于类的,在类加载的时候就被加载了那么类的东西可以被继承吗?是不可以的

static修饰的东西是类的一部分,假如类是个JAVA-抽象类和接口

那么static修饰的东西可以是一面墙,一个地板,无法被继承 


1.3.3 抽象类的子类要么也是抽象类,要么重写所有抽象方法

怎么理解? 动物可以有子类陆生和水生,显然这两个子类都是抽象类

动物也可以是狗和猫,显然,这两个类都不是抽象类

我们以水生和狗来举例

JAVA-抽象类和接口

 JAVA-抽象类和接口


1.4抽象类的作用

  1. 定义通用的属性和方法:抽象类可以定义一些通用的属性和方法,供其子类继承和实现。

  2. 规范子类的行为:抽象类可以定义一些抽象方法,强制其子类实现这些方法,从而规范子类的行为。

  3. 提高代码的复用性:抽象类可以作为其他类的基类,提供一些通用的功能,从而提高代码的复用性。

  4. 实现多态:通过抽象类和多态的特性,可以实现基于抽象类的多态性,使得程序更加灵活和可扩展。

  5. 封装共同的逻辑:抽象类可以封装一些共同的逻辑,使得子类可以直接继承这些逻辑,而不需要重复实现。

抽象类算是接口和继承之间一种平庸的选择!


2.1 接口的概念

接口就是公共的行为规范标准,大家在实现时,只要符合规范标准,就可以通用。 在Java中,接口可以看成是:多个类的公共规范,是一种引用数据类型。


2.2 语法规则

接口的定义与类基本相同,将class换成interface即可

JAVA-抽象类和接口

2.3 接口的使用

接口不能直接使用,必须要有一个实现类来实现接口,实现接口中所有的抽象方法

JAVA-抽象类和接口

 2.4 接口的特性

1. 接口类型是一种引用类型,但是不能直接new接口的对象

JAVA-抽象类和接口

2.. 接口中每一个方法都是public的抽象方法, 即接口中的方法会被隐式的指定为 public abstract(只能是 public abstract)

JAVA-抽象类和接口

 JAVA-抽象类和接口

 3.接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量

 JAVA-抽象类和接口


2.5抽象类和接口的区别

抽象类和接口都是 Java 中多态的常见使用方式. 都需要重点掌握. 同时又要认清两者的区别

核心区别: 抽象类中可以包含普通方法和普通字段, 这样的普通方法和字段可以被子类直接使用(不必重写), 而接口中 不能包含普通方法, 子类必须重写所有的抽象方法.

JAVA-抽象类和接口


总结

以上就是今天要讲的内容,本文重点介绍了抽象类简单介绍了接口,抽象类和接口中提供了大量能使我们快速便捷地处理数据的函数和方法,值得我们去重点掌握。文章来源地址https://www.toymoban.com/news/detail-450071.html

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

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

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

相关文章

  • Java中抽象类和接口的区别

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

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

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

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

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

    2024年02月08日
    浏览(41)
  • 【Java SE语法篇】9.抽象类和接口

    📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 在面向对象的概念中,所有的对象都是通过类来描绘的,但是放过来,并不是所有的类都是用来描绘对象的, 如果一个类中没有包含足够的

    2024年01月19日
    浏览(48)
  • 图灵日记之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日
    浏览(46)
  • 分分钟搞定Java中的抽象类和接口!!!(abstract & interface)

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

    2024年02月01日
    浏览(42)
  • 【JAVASE】抽象类和接口及其抽象类和接口的区别

    ✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:再无B~U~G-CSDN博客 目标: 1. 抽象类 2. 接口 3. Object 类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的, 如果 一个类中

    2024年04月13日
    浏览(51)
  • 抽象类和接口的区别

    Java是单继承和多实现 参数 抽象类 接口 声明 用abstract声明 用interface声明 实现 子类使用extends来继承抽象类,如果子类不是抽象类的话,它需要提供抽象类中所有声明方法的实现 子类使用implements来实现接口,它需要提供接口中所有声明方法的实现

    2024年02月06日
    浏览(43)
  • JAVASE---抽象类和接口

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

    2024年02月09日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包