首页
学习
活动
专区
圈层
工具
发布

【Kotlin】接口和抽象类 ( 接口属性和方法定义 | 接口默认方法实现 | 抽象类 )

文章目录 一、接口属性和方法定义 二、接口默认方法实现 三、抽象类 一、接口属性和方法定义 ---- Kotlin 中使用 interface 关键字 定义接口 , 接口中的 所有 属性 和 函数 默认都是...open 的 , 在 接口 实现类中 , 必须 使用 override 重写 接口的 属性 和 函数 ; 重写 接口属性 主要是 为 该属性赋值 , 以及 设置成员属性的 getter 和 setter...方法 ; 重写 接口函数 主要是 实现 抽象函数 ; 代码示例 : 在下面的代码中 , 使用 interface 关键字定义了 Person 接口 , 在其中定义了 两个 属性和一个函数 , 这些成员...默认都使用 open 修饰 ; Student 类是 Person 接口的实现类 , 在该类中需要 使用 override 重写 接口中所有的 成员属性 和 成员方法 ; interface Person...---- 在 Java 接口中 只能定义抽象方法 , 但是在 Kotlin 中 , 可以提供一个 默认的接口方法实现 ; 在 Kotlin 接口中 , 可以 为 接口属性 提供默认的 setter 实现

2K20

抽象类和接口

抽象类和接口 特点 抽象类不能被实例化 但可以创建一个引用变量,其类型是一个抽象类,指向非抽象的子类实例 抽象类与抽象方法的使用 抽象类中可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象类 如果子类没有实现父类的所有抽象方法...{    public void foo();    //其他方法 } 特性 接口不可以被实例化 实现类必须实现接口的所有方法 实现类可以实现多个接口 implements、多个接口使用逗号隔开...的 接口没有构造方法,不能被实例化 一个接口不能实现另一个接口,但可以继承多个其他接口 一个类必须实现接口抽象方法(implements),除非这个类也是抽象类 抽象类vs接口 相同点 代表系统的抽象层...都不能被实例化 都能包含抽象方法 用于描述系统提供的服务,不必提供具体实现 不同点 在抽象类中可以为部分方法提供默认实现,而接口中只能包含抽象方法 抽象类便于复用,接口便于代码维护 一个类只能继承一个直接的父类...,但可以实现多个接口 使用原则 接口做系统与外界交互的窗口 接口提供服务 接口本身一旦制定,就不允许随意修改 抽象类可完成部分功能实现,还有部分功能可作为系统的扩展点 面向对象设计原则 多用组合,少用继承

44730
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JAVA之抽象和接口

    为了满足多态的功能,做一些不用来实现的方法父类,我们可以 采用抽象。故引出今天的下文: 抽象类 不能直接实例化的类,提供其他类的框架和基础功能。包含抽象方法和抽象属性,子类实现抽象方法,扩展功能。...接口名称(); }  2.接口的实现 接口不能直接使用,需要一个“实现类”来实现接口中的所有抽象方法。...类似继承的父与子关系用“extends”连接,接口中实现类和接口之间需要用“implements”连接。 举个例子,直接实战一道题吧。 请实现笔记本电脑使用USB鼠标、USB键盘的例子 1....extends Running, Swimming { } //然后用青蛙来对两栖直接接口 class Frog implements Amphibious { ... } 接口和抽象的辨析 (抽象类...,你不能要求青蛙能游泳的同时还能飞吧) 专业一点,网上看到了个表格: 用例题复习多态和接口的使用 我们用父类animal ,接口 飞Flying,跑Running,游泳Swimming,和子类(及实现类

    30410

    抽象类和接口

    抽象类只能用来继承。 抽象方法必须被子类实现。 为什么需要接口 接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离。...抽象类还提供某些具体实现,接口不提供任何实现,接口中所有方法都是抽象方法。接口是完全面向规范的,规定了一批类具有的公共方法规范。 从接口的实现者角度看,接口定义了可以向外部提供的服务。...接口名:和类名采用相同命名机制 extends:接口可以多继承 常量:接口中的属性只能是常量,总是:public static final 修饰。不写也是。...一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的。 4. 接口中只能包含静态常量、抽象方法,不能有普通属性、构造方法、普通方法。 5....接口完全支持多继承。和类的继承类似,子接口扩展某个父接口,将会获得父接口中所定义的一切。 总结普通类:只有具体实现抽象类:具体实现和规范(抽象方法) 都有!接口:只有规范!

    1.2K50

    【Kotlin】Kotlin 抽象类与接口 ( 接口声明 | 接口实现 | 抽象类声明与实现 )

    Kotlin 接口定义与实现 II . Kotlin 抽象类定义 III . Kotlin 类继承抽象类并实现接口 IV . Kotlin 接口与抽象类子类测试 I ....Kotlin 接口实现 : /** * 如果类实现一个接口 , 那么必须全部实现接口中的方法 * 抽象类实现一个接口 , 可以不实现接口中的方法 */ class MaleStudent : IStudent...Kotlin 类继承抽象类并实现接口 : /** * 接口 : 表现事物的能力 , 只能有方法 * 抽象类 : 表现事物的本质 , 可以有成员和抽象方法 * * 该类继承抽象类 , 实现接口...测试 接口 + 抽象类 : HumanStudent 继承了抽象类 , 实现类接口 ; // 测试 接口 + 抽象类 //HumanStudent 继承了 Human 抽象类 , 实现了 Student...Kotlin 接口与抽象类子类测试 ---- 1 . 接口 : 表现事物的能力 , 只能有方法 2 . 抽象类 : 表现事物的本质 , 可以有成员和抽象方法 // 3 .

    1.2K20

    简述Java抽象方法、抽象类和接口

    所以本讲,我们讲解Java的抽象类和接口,这个跟继承有点类似,但是实现的子类必须实现对应的方法。...一、两个重要关键字 在讲解Java的抽象类和接口之前,我们必须先了解两个重要的关键字:static 和 final,这两个在接口中是很重要。...public void fly() { } } 图片 2.抽象类和接口的区别 抽象类:与普通类的区别是加了一个abstract修饰,可以包含抽象方法,子类继承extend 接口:没有构造方法...人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它。当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口。...总结 本文主要是讲解Java的接口和抽象类,并且分析抽象类和接口的区别,为什么需要接口。主要是为了是程序能够“高内聚,低耦合”,公共的属性统一起来,通过定义接口或者抽象类形成一种规范。

    1.1K61

    【JAVA抽象类和接口】

    在父类中的方法可以创建,但是无需实现,但是如果不在这个方法里面实现,代码会发生报错,所以为了简化代码,于是Java中提供了abstract这个关键字用于创建抽象方法和抽象类。...接口当中的方法不能有具体的实现,如果需要则此方法需要加上关键字default或static修饰。如下面的test和func方法的实现。...接口的使用 接口不能直接使用,必须要有一个“实现类”来“实现”该接口,实现接口中所有抽象的方法。 子类与父类是extends的关系,类与接口是implements的实现关系。...接口间的继承 Java中,类与类之间是单继承的,一个类可以实现多个接口,接口和接口之间可以多继承。在Java中我们可以通过接口实现多继承。...一个子类可以实现多个接口 抽象类和接口最重要的区别 1.抽象类中可以包含和普通类一样的成员变量和成员方法,但是接口当中的成员变量只能是public static final的,方法只能是public

    44110

    07 接口和抽象类

    一个类可以实现多个接口。接口间用逗号分隔; 如果实现某接口的类不是抽象类,则在类的定义部分必须实现指定接口的所有抽象方法;否则编译时会指示该类只能为抽象类是不能创建对象的....抽象类声明和实现 在Java中抽象类和抽象方法的修饰符是 abstract,注意抽象方法中只有方法的声明,没有方法的实现。...抽象类和接口是配合而非替代关系,它们经常一起使用,接口声明能力,抽象类提供默认实现,实现全部或部分方法,一个接口经常有一个对应的抽象类。...比如,在 Java 类库中,有: ❑ Collection 接口和对应的 AbstractCollection 抽象类。 ❑ List 接口和对应的 AbstractList 抽象类。...❑ Map 接口和对应的 AbstractMap 抽象类。

    49210

    JavaSE抽象类和接口

    JavaSE抽象类和接口 一、抽象类 1、抽象类概念 一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类 在Java中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract...I 开头 接口的命名一般使用 “形容词” 词性的单词 阿里编码规范中约定, 接口中的方法和属性不要加任何修饰符号, 保持代码的简洁性 接口使用,必须要有一个"实现类"来"实现"该接口: public...,只能由实现接口的类来实现 public interface USB { void openDevice(); // 编译失败:因为接口中的方式默认为抽象方法 // Error:...,每个接口中的抽象方法都要实现,否则类必须设置为抽象类 有了接口之后,类的使用者就不必关注具体类型,而只关注某个类是否具备某种能力 案例: class Robot implements IRunning...抽象类中可以包含普通方法和普通字段, 这样的普通方法和字段可以被子类直接使用(不必重写), 而接口中不能包含普通方法, 子类必须重写所有的抽象方法 注意:上面说的接口是java8之前的情况下才是正确的

    41520

    区分接口和抽象类

    2 抽象方法必须存在于抽象类中。 3 抽象类中可以有一般的变量和一般的方法。 4 子类继承抽象类必须实现其中抽象方法,除非子类为抽象类。...接口和抽象类的区别 1 接口只能包含抽象方法,抽象类可以包含普通方法。 2 接口只能定义静态常量属性,抽象类既可以定义普通属性,也可以定义静态常量属性。...2 如果许多类实现了某个接口,那么每个都要用代码实现那些方法 3 如果某一些类的实现有共通之处,则可以抽象出来一个抽象类,让抽象类实现接口的公用的代码,而那些个性化的方法则由各个子类去实现。...我认为,抽象类和接口的区别在于使用动机。使用抽象类是为了代码的复用,而使用接口的动机是为了实现多态性。所以,如果你在为某个地方该使用接口还是抽象类而犹豫不决时,那么可以想想你的动机是什么。...再者,我认为接口和抽象类的另一个区别在于,抽象类和它的子类之间应该是一般和特殊的关系,而接口仅仅是它的子类应该实现的一组规则。 (转自脚本之家)

    63130

    【JAVA】抽象类和接口

    抽象类的定义规则 (1)包含抽象方法的类必须是抽象类 (2)声明抽象类和抽象方法时都要使用== abstract== 关键修饰。 (3)抽象方法只需要声明而不需要实现。...在Java 中,使用接口的目的是克服单继承的限制,因为一个类只能有一个父类,而一个类可以同时实现多个父接口。在JDK 8之前,接口是由全局常量和抽象方法组成的。...不管写不写访问权限,接口中方法的访问权限永远是 public。 接口本身不能直接实例化,接口中的抽象方法和默认方法只能通过接口实现类的实例对象进行调用。...定义了Dog类,Dog 类通过implements关键字实现了Animal接口和Actio接口,并重写了这两个接口中的抽象方法。...定义了 Dog 类并实现了 Action 接口,这样 Dog 类就必须同时重写Animal 接口中的抽象方法 info()、Color 接口中的抽象方法 black()和 Action 接口中的抽象方法

    1.1K20

    【Java】抽象类和接口

    抽象类就是用来被继承的 但是普通类也是可以被继承的?为什么还要用抽象类和抽象方法呢? 抽象类相当于多了一层编译器的校验,可以起提醒作用“预防出错”。 接口 1.什么是接口?...2.如何使用接口? 接口不能直接使用,必须要有一个“实现类”来“实现”该接口,实现该接口的所有抽象方法。...,这类必须设置为抽象类,如果这个抽象类被继承,就得实现所有的没有被实现的方法 abstract class KeyBoard implements USB{ } 4.实现多个接口 为什么要实现多个接口...一个类实现多个接口,每一个接口的抽象方法都要实现,否则类必须设置为抽象类; IDEA中使用 ctrl+I 可以快速实现接口; 在继承的同时实现接口,要先继承在实现接口,不可以先实现接口在继承; 实现多个接口的好处...5.接口与接口 接口与接口之间也可以实现extends(扩展)关系 在Java中,类和类之间是单继承的,一个类可以实现多个接口,而接口与接口可以是多继承的,用接口可以达到多继承的目的。

    46610

    抽象类和接口(全)

    3.接口的使用 接口不能直接使用,必须要有一个“实现类”来“实现”该接口,实现接口中所有的抽象方法。...public class 类名 implements 接口名称{ //... } #注:子类和父类之间是extends继承关系,类与接口之间是implements实现关系 //鼠标类,实现USB....class (8)如果类没有实现接口中的所有抽象方法,则类必须设置为抽象类 5.实现多个接口 Java中不⽀持多继承,但是⼀个类可以实现多个接⼝。...在Java中,类和类之间是单继承的,⼀个类可以实现多个接⼝,接口与接口之间可以多继承。...核⼼区别:抽象类中可以包含普通方法和普通字段,这样的普通方法和字段可以被子类直接使用(不必重写), 而接口中不能包含普通方法,子类必须重写所有的抽象方法.

    31410

    php中接口、抽象类以及接口和抽象类区别详解

    1.接口 (1)对接口的使用是通过关键字implements (2)接口不能定义成员变量(包括类静态变量),能定义常量 (3)子类必须实现接口定义的所有方法 (4)接口只能定义不能实现该方法 (5)接口没有构造函数...(6)接口中的方法和实现它的类默认都是public类型的 1.抽象类 (1)对抽象类的使用是通过关键字extends (2)不能被实例化,可以定义子类必须实现的方法 (3)子类必须定义父类中的所有抽象方法...(7)一个类可以同时实现多个接口,但一个类只能继承于一个抽象类。...抽象类中可以声明各种类型成员变量,实现数据的封装。(另JAVA接口中的成员变量都要声明为public static final类型) 3、接口没有构造函数,抽象类可以有构造函数。...4、接口中的方法默认都是public类型的,而抽象类中的方法可以使用private,protected,public来修饰。 5、一个类可以同时实现多个接口,但一个类只能继承于一个抽象类。

    72630

    Java总结:抽象类、接口以及抽象类和接口的区别

    要知道区别,我们就需要先了解一下什么是抽象类和接口?...一个类通过继承接口的方式,从而来继承接口的抽象方法。 2、接口特点: 从定义上看,接口是个集合,并不是类。类描述了属性和方法,而接口只包含方法(未实现的方法)。...接口和抽象类一样不能被实例化,因为不是类。但是接口可以被实现(使用 implements 关键字)。实现某个接口的类必须在类中实现该接口的全部方法。...虽然接口内的方法都是抽象的(和抽象方法很像,没有实现)但是不需要abstract关键字。 除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。 接口无法被实例化,但是可以被实现。...三、抽象类和接口的区别 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。

    46510

    抽象类和接口(1)(抽象类部分)

    抽象类语法 ❤️❤️ 在Java中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽象方法不用给出具体的实现体。...void draw(); abstract void calcArea(); // 抽象类也是类,也可以增加普通方法和属性 public double getArea(){...return area; } protected double area; // 面积 } ❤️❤️注意:抽象类也是类,内部可以包含普通方法和属性甚至构造方法...,初始化父类的成员变量 5.抽象类中不一定包含抽象方法,但是有抽象方法的类一定是抽象类(多次强调了) 6.抽象方法不能被调用(注意是抽象类中的抽象方法,不是重写的方法),调用了抽象类中的抽象方法的话就会直接被系统说报错...抽象类的作用 好了所以抽象类和接口的抽象类部分就结束了,之后将给大家带来接口部分的讲解~!

    26010

    抽象类和接口(2)(接口部分)

    接口的使用 接口不能直接使用,必须要有一个"实现类"来"实现"该接口,实现接口中的所有抽象方法。...如果类没有实现接口中的所有的抽象方法,则类必须设置为抽象类。...实现多个接口//继承和接口并用 在Java中,类和类之间是单继承的,一个类只能有一个父类,即Java中不支持多继承,但是我们的一个类可以实现多个接口。...接口中的继承可以通过关键字"extends"来实现,通过继承父接口可以拥有父接口的方法和属性,并且可以在子接口中添加新的方法和属性。子接口可以使用继承的方法和属性。...注意当接口继承接口时,子接口并不需要重写父接口的抽象方法,只有当类实现子接口时,才需要将子接口本来的抽象方法和父接口的抽象方法在该类中全部重写。

    19010

    【javaSE】抽象类和接口进阶

    在面向对象编程的世界里,抽象类和接口是构建灵活、可扩展代码的基石。在前一篇博客中,我们初步了解了抽象类和接口的基本概念和使用方法。...本文将带领大家深入探索抽象类和接口的高级特性与实际应用,进一步掌握面向对象编程的精髓。 Object类 Object是Java默认提供的一个类。...如下: 获取对象信息 如果要打印对象中的内容,可以直接重写Object类中的toString()方法,之前已经讲过了,此处不再累赘 // Object类中的toString()方法实现: public...接口使用实例:比较器 Comparable接口中只有一个方法:CompareTo 这个接口是编译器定义好的我们只要拿来用。...我们发现,一旦原来的compareTo代码写定后,再想更改太麻烦了,我们怎么来便捷改变age和name?

    4910

    接口和抽象类的区别

    接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。 抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。...所以,在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口、走路接口)。...总结几句话来说: 1、抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。 2、抽象类要被子类继承,接口要被类实现。...和 接口 都是用来抽象具体对象的....但是接口的抽象级别最高 2.抽象类可以有具体的方法 和属性, 接口只能有抽象方法和不可变常量 3.抽象类主要用来抽象类别,接口主要用来抽象功能.

    75420

    【Java SE】抽象类和接口

    abstract修饰类 抽象类当中可以包含普通类所能包含的成员 抽象类和普通类不一样的是,抽象类当中可以包含抽象方法 抽象方法是使用abstract修饰的,这个方法没有具体的实现 不能实例化抽象类 new...接口的命名一般使用 “形容词” 词性的单词. 2.3接口使用 接口不能直接使用,必须要有一个"实现类"来"实现"该接口,实现接口中的所有抽象方法。...public class 类名称 implements 接口名称{ // ... } 注意:子类和父类之间是extends 继承关系,类与接口之间是 implements 实现关系。...成员变量默认是public static final 修饰的 接口不能被实例化 子类重写抽象方法,必须加上public 类和接口之间采用implements 来实现多个接口 接口中不能有静态代码块和构造方法...核心区别: 抽象类中可以包含普通方法和普通字段, 这样的普通方法和字段可以被子类直接使用(不必重写), 而接口中不能包含普通方法, 子类必须重写所有的抽象方法.

    44030
    领券