抽象方法,抽象类,接口

抽象类:具有抽象方法的类就是抽象类

抽象方法:没有方法体的方法就是抽象方法

作用:主要协同工作,制定标准

特征:

  • 抽象方法就是没有方法体的方法, 方法体就相当于函数体,抽想方法前,必须使用abstract 关键字,且方法后不能够写{},但是要写结束符;
  • 如果类中有抽象方法,那么这个类的前面也需要 abstract关键字修饰
  • 抽象类中可以有非抽象方法
  • 抽象类可以参数,要实现该抽象方法,必须传入同样参数
  • 不能直接实例化,必须由其他的类继承并且完全实现出所有的抽象方法,才可以使用,抽像类主要是给其他类进行继承操作
  • 抽象类可以继承抽象类
  • 抽象类中不能使用private 关键字

接口:

如果一个类中没有任何非抽象方法,并且不存在常量之外的任何成员属性,那么这个类就是一个接口

特征:

  • 声明一个接口不使用class关键字,而是使用interface关键字
  • 接口中的抽象方法不写abstract关键字,虽然他也是一个抽象方法
  • 接口只能用public 关键字, 不能使用 protected和private关键字
  • 接口中不允许有任何的成员属性,除了常量
  • 接口的继承不是使用extends而是使用implements关键字
  • extend只能继承一个普通类或者一个抽象类,implements能继承多个接口,从而模拟多继承

抽象类和接口的区别:

抽象类的成员可以具有访问级别,而接口的成员全部是public级别

抽象类可以包含成员属性、而接口只能有常量

抽象类可以继承接口,而接口不能继承抽象类

抽象类的成员可以有具体实现、而接口不行

抽象的子类可以选择性实现基类的抽象方法,而接口的子类必须全部实现

原文地址:https://www.cnblogs.com/vijarye/p/9390118.html

时间: 2024-11-14 13:28:24

抽象方法,抽象类,接口的相关文章

抽象类-接口--抽象方法几点解释

//abstract class和interface有什么区别?含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象.含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的.abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,(抽象类中的普通方法,可以不必实现.)所以,不能有抽象构造方法或抽象静态方法.如果子类没有实现抽象父类中的所有抽 象方法,那么子类也必须定义

抽象方法和抽象类 & 接口

抽象方法 使用abstract修饰的方法,没有方法体,只有声明.定义的是一种"规范",就是告诉子类必须要给抽象方法提供具体的实现. 抽象类 包含抽象方法的类就是抽象类.通过abstract方法定义规范,然后要求子类必须定义具体实现.通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用. 抽象类的使用要点 有抽象方法的类只能定义成抽象类 抽象类不能实例化,即不能用new来实例化抽象类. 抽象类可以包含属性.方法.构造方法.但是构造方法不能用来new实例,只能用来被子类调用.

抽象方法、接口

抽象方法 1.没有方法体 2.必须在抽象类中 3.子类必须重写所有抽象方法,除非子类也是抽象类 4.抽象类不能实例化 5.抽象成员的访问修饰符不能private 6.子类不能通过base关键字去,调用父类抽象方法 多个类,具有同样的同样的行为,如果找得到父类的情况下,使用抽象类,如果找不到父类,则使用接口. 接口 1.接口是一个特殊的抽象类 2.属性.方法.索引器.事件 3.接口成员不能加访问修饰符 4.实现接口的类,必须实现接口中的所有抽象方法,除非是抽象类 5.类是单继承,但是可以多实现 6

抽象类/接口

回顾:1.重写(override): 1)父子类中,方法签名相同,方法体不同 2)重写方法被调用时,看对象的类型 3)两同两小一大: 3.1)方法名同,参数列表同 3.2)子类返回值类型小于等于父类 3.2.1)void时,必须相同 3.2.2)基本类型时,必须相同 3.2.3)引用类型时,子类小于等于父类(父类大,子类小) 子类抛出的异常小于等于父类-----后期说 3.3)子类的访问权限大于或等于父类2.重写与重载的区别 1)重写(override):父子类,方法名同,参数列表同 “运行期”

虚方法,多态,抽象方法和接口

虚方法 1.在父类中的虚方法有默认的实现 2.子类可以重写父类的虚方法override 多态   LSP(里氏替换原则) 父类变量 指向 子类对象 抽象方法 1.没有方法体 2.必须在抽象类中 3.子类必须重写抽象方法,除非子类也是一个抽象类 4.抽象类不能实例化 5.抽象成员的访问修饰符不能private 6.子类不能通过base关键字去调用父类的抽象方法 接口: 1.接口是一个特殊的抽象类. 2.属性 方法 索引器 时间 3.接口成员不能添加访问修饰符 4.现接口的类 必须要实现接口中的所有

c#复习系列之抽象方法和接口

最近一直在复习关于c#的知识点,发现里面有好多重要的内容(也是自己以前不懂的地方),特别是面向对象的部分,同时又是我们学习中的重点和难点,抽象类的接口又是多态的基础(也是实现手段),所以今天在这里对接口和抽象类做一下总结,拿出来和大家分享一下,让我们共同的教学交流与进步吧! 一 抽象类 (一)什么是抽象类和抽象方法? (1)抽象类的定义:简单的理解就是描述共性的类,抽象类中不考虑具体的实现,只是定义具有共性且必须实现的方法(也就是抽象方法),其中声明时用abstract关键字. (2)重点解释:

java 抽象类 接口 区别

韩梦飞沙  韩亚飞  [email protected]  yue31313  han_meng_fei_sha 接口 里面 都是抽象方法. 接口里面的 字段 都是 public static final 修饰的. 抽象类 里面 可以有 实现了的方法.

小知识(五):抽象类&接口

抽象类abstract: 抽象类和抽象方法可以用abstract关键字进行标识.就是没有完全定义的类或方法.所以不能直接实例化操作. 就因为他没完全定义所以不能用sealed关键字进行密封. 抽象方法不含程序主体: public abstract class Student { //抽象方法,不含程序体 public abstract void GetStudentID(); //子类可访问字段 prodected int i; //定义i的属性 public int I { get { ret

黑马程序员--java基础之多态,抽象类,接口,匿名内部类

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 4.4 子类的实例化过程 子类中所有的构造函数默认都会访问父类中空参数的构造函数. 因为每一个构造函数的第一行都有一条默认的语句super();. 子类会具备父类中的数据,所以要先明确父类是如何对这些数据初始化的. 为什么子类实例化的时候要访问父类中的构造函数呢? 那是因为子类继承了父类,获取到了父类中内容(属性),所以在使用父类内容之前,要先看父类是如何对自己的内容进行初始化的. P.S.

普通类 抽象类 接口

首先得搞懂什么是抽象类:一.概念:    在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样.并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类.    比如:如果我们进行一个图形编辑软件的开发,就会发现问题领域存在着圆.三角形这样一些具体概念.它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域是不存在的,它就是一个抽象概念.正是因为抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的