interface和abstruct比较

像的地方:

  接口和抽象类都不能实例化,都位于继承树的顶端,用于被其他类实现和继承

  接口和抽象类都可包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法

差别:

  设计目的不同:

    接口是系统与外界交互的窗口,体现的是一种规范,是系统的总纲

    抽象类是多个子类的父类,体现的是一种模板式设计,是系统实现过程的中间产品

  用法区别:

    接口里只能包含抽象方法和默认方法,不能为普通方法提供实现,抽象类则可以包含普通方法

    接口里不能定义静态方法,抽象类里可以定义静态方法

    接口里只能定义静态变量,不能定义普通变量,抽象类则既可以定义静态变量,也可以定义普通变量

    接口里不含构造器,抽象类包含构造器,其构造器不用于创建对象,而是让其子类调用这些构造器来完成属于抽象类的初始化操作

    接口里不能包含初始化块,抽象类可以包含初始化块

    一个类只能有一个父类,包括抽象类,但可以实现多接口,弥补java单继承的不足

时间: 2024-10-31 18:02:56

interface和abstruct比较的相关文章

访问修饰限定符的简单总结、final/abstruct/interface对类的限制、自动加载机制、序列化与反序列化【数据持久化和对象的序列化问题】、对象的拷贝(按引用是因为对象标识)和克隆(__clone方法中的this指向)

1.针对访问修饰限定符的理解只需要两点:(1)针对的是类的概念和访问代码的位置来确定是否能够访问(2)对访问修饰限定符的使用时只需要对该成员的使用场景注意即可[也就是内部,继承类,外部进行访问的权限] 不需要对内部进行太多理解[需要对php底层理解时进行理解] [重点][用途]通过访问修饰限定符将内部成员的权限合理的限制,然后再使用公共接口来调用这个基本服务,保证外部不能访问其内部的构件[这样既能够通过类内的设置,将内部的功能实现更好的限制,只有最外层的接口可以正常被访问到,而不了解内部的业务]

abstract和interface的区别

abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力. abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于 abstract class和interface的选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解.对于设计意图的理解是否正确.合理.本

class、interface、struct的区别

1 struct和class有什么区别 1.1默认的继承访问权限 Struct是public的,class是private的. 你可以写如下的代码: struct A { char a; }; struct B:A { char b; } 这个时候B是public继承A的.如果都将上面的struct改成class,那么B是private继承A的.这就是默认时的继承访问权限.所以我们在平时写类继承的时候,通常会这样写: struct B:public A 就是为了指明是public继承,而不是用默

Adding New Functions to MySQL(User-Defined Function Interface UDF、Native Function)

catalog 1. How to Add New Functions to MySQL 2. Features of the User-Defined Function Interface 3. User-Defined Function 4. UDF Argument Processing 5. UDF Return Values and Error Handling 6. UDF Compiling and Installing 7. Adding a New Native Functio

Interface接口

一.接口及作用 接口是一个非常重要的概念,理解这个,先举一个实现生活中的实例. 现在,电脑主板,有很多插槽,可用来插CPU.内存等.当CPU等元件需要更新换代升级时,只要将CPU单独更换就可以了,而不需要更换主板.其实,主板上的这些暴露在外的插槽,就可以理解为接口. 接口就是对外暴露的规则,只要符合规则的CPU.内存,不论品牌.型号.规格,都可以安插使用. 接口是程序的功能扩展.有了插槽,也就提高了主板的功能扩展性,比如内存不够用了,我们就可以换成内容最大的内存条,或再加新的内存条. 接口降低了

一个Interface 继承多个Interface 的总结

我们知道在Java中的继承都是单继承的,就是说一个父类可以被多个子类继承但是一个子类只能有一个父类.但是一个接口可以被不同实现类去实现,这就是我们说的Java中的多态的概念.下面我们再来说一下接口的多继承的概念,就是说一个接口是可以继承多个接口的. 下面是我们公司自己开发的ORM框架,就用到了接口的多继承的概念. @MybatisRepository public interface BaseQueryDao<T> extends IBaseQueryDao<T>, Dynamic

【翻译】Android Interface Definition Language (AIDL)

参考地址:https://developer.android.com/guide/components/aidl.html Android Interface Definition Language (AIDL) AIDL (Android Interface Definition Language) is similar to other IDLs you might have worked with. It allows you to define the programming inter

JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展

JAVA之旅(七)--final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展 OK,我们继续学习JAVA,美滋滋的 一.final 我们来聊聊final这个关键字 final可以修饰类,方法和变量 final修饰的类不可以被继承 final修饰的方法不可以被覆盖 final修饰的变量是一个常量,只能被赋值一次 内部类只能访问被final修饰的局部变量 final,故名思意,就是最终的意思,由以上的五种特性,不过final的出现,也是有

重构第9天:提取接口(Extract Interface)

理解:提取接口的意思是,多于一个类共同使用某个类中的方法或属性,那么我们可以把这些方法和属性提出来,作为一个单独的接口.这样的好处是解除代码间的依赖,降低耦合性. 详解: 先看重构前的代码: 1 public class ClassRegistration 2 { 3 public void Create() 4 { 5 // create registration code 6 } 7 8 public void Transfer() 9 { 10 // class transfer code