资讯专栏INFORMATION COLUMN

java的抽象类和接口

ChanceWong / 3576人阅读

摘要:最近一直在刷校招的题目,突然发现自己对接口和抽象类的掌握并不牢固,所以想记录一下对接口和抽象类的理解一抽象类抽象方法是一种特殊的方法它只有声明,而没有具体的实现。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。

最近一直在刷校招的题目,突然发现自己对接口和抽象类的掌握并不牢固,所以想记录一下对java接口和抽象类的理解
一:抽象类
抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:
abstract void test();

 抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。

public abstract class circle {

    abstract void test();
}

抽象类和普通类的主要有三点区别:

抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。

抽象类不能用来创建对象;

如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。

二:接口

CalInterface接口

public interface CalInterface {
    public float PI = 3.14f;
    public float getArea(float a);
    public float getPi();
}

Cire类implements CalInterface接口

public class Cire implements CalInterface {

    @Override
    public float getArea(float a) {
        return 0;
    }

    @Override
    public float getPi() {
        return 0;
    }
}

接口中的方法实例,所有的方法不能有具体的实现,也就是说,接口中的方法必须都是抽象方法,implements的类需要重写该方法,从这里可以隐约看出接口和抽象类的区别,接口是一种极度抽象的类型,它比抽象类更加“抽象”,并且一般情况下不在接口中定义变量。
接口中的变量会被隐式地指定为public static final变量(并且只能是public static final变量,用private修饰会报编译错误),而方法会被隐式地指定为public abstract方法且只能是public abstract方法(用其他关键字,比如private、protected、static、 final等修饰会报编译错误)

三:抽象类和接口的区别

抽象类可以提供成员方法的实现细节,而接口中只能存在方法;

抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;

接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;

参考资料 https://www.cnblogs.com/dolph...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77146.html

相关文章

  • Java抽象类和接口小记

    摘要:抽象类和接口小记抽象类和接口实现了的多态多态是面向对象程序语言的核心在项目开发过程中其实很少使用抽象类接口用得比较多今天小记一下抽象类和接口的区别抽象类抽象类不能被实例化抽象类可以继承可以定义变量可以定义构造方法抽象方法的要显式的写出来其子 Java抽象类和接口小记 Java抽象类和接口实现了java的多态.多态是面向对象程序语言的核心,在项目开发过程中,其实很少使用抽象类,接口用得比...

    Gemini 评论0 收藏0
  • java抽象类和接口总结

    摘要:如果一个非抽象类遵循了某个接口,就必须实现该接口中的所有方法。抽象类是对整个类整体进行抽象,包括属性行为,但是接口却是对类局部行为进行抽象。因此最好的解决办法是单独将报警设计为一个接口,包含行为设计为单独的一个抽象类,包含和两种行为。 一、抽象类 二、接口 三、抽象类和接口的区别 一、抽象类 在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现...

    荆兆峰 评论0 收藏0
  • Java抽象类与接口区别

    摘要:很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。在讨论它们之间的不同点之前,我们先看看抽象类接口各自的特性。抽象类抽象类是用来捕捉子类的通用特性的。 很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们将仔细讨论这些话题。 在讨论它们之间的不同点之前,我们先看看抽象类...

    Ethan815 评论0 收藏0
  • 12.java 接口

    摘要:接口的对象可以利用子类对象的向上转型进行实例化赋值。接口文件保存在结尾的文件中,文件名使用接口名。接口相应的字节码文件必须在与包名称相匹配的目录结构中。接口不能包含成员变量,除了全局常量定义。 概念 接口,在JAVA编程语言中是一个引用类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。 接口中只能包含抽象方法和全局常量。 接...

    pinecone 评论0 收藏0
  • 抽象类和接口区别已经变了

    摘要:抽象方法没有方法体抽象方法权限修饰符不能为抽象方法的目的就是为了让子类继承重写的,所以抽象方法不能私有,不能修饰。另外,添加默认方法不会影响函数式接口的使用。 原文:抽象类和接口的区别已经变了 随着JDK的不断迭代,抽象类和接口的区别已经有了些许改变,你是否还停留在JDK 7 的答案呢? 定义 抽象类定义通过 abstract class public abstract class A...

    wow_worktile 评论0 收藏0

发表评论

0条评论

ChanceWong

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<