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

  

//abstract class和interface有什么区别?
含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。含有abstract方法的类必须
定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必
须在具体(Concrete)子类中实现,(抽象类中的普通方法,可以不必实现。)所以,不能有抽象构造方
法或抽象静态方法。如果子类没有实现抽象父类中的所有抽 象方法,那么子类也必须定义为abstract类型。
接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。
接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。
//抽象方法

抽象方法:在类中没有方法体的方法,就是抽象方法。
//接口中方法都是抽象方法
你定义了非抽象方法,它默认也是抽象的方法,实现类必须重写,
你只是省略的关键字abstract,实际上接口会自动给你加上的

 1 interface Alarm{
 2 public abstract void alarm(); //缺省还是默认为abstract
 3 }
 4 abstract class Door{
 5 public abstract void open(); //缺少默认为abstract
 6 public abstract void close();
 7 }
 8 class AlarmDoor extends Door implements Alarm{
 9 public void open(){
10
11 }
12 public void close(){
13
14 }
15 public void alarm(){
16
17 }
18 }
19
20  
时间: 2024-10-13 12:05:03

抽象类-接口--抽象方法几点解释的相关文章

python 之浅谈接口的定义和抽象类以及抽象方法

#_*_ coding:utf-8 _*_ #知识点:接口的定义和抽象类以及抽象方法 ''' 1.抽象类式啥? 抽象类加上抽象方法就等于接口 2.接口的定义 含义1.别人给你暴露一个URL,然后调用这个URL 含义2.定义一个规范,不写具体实现,按照这个规范去实现相关功能,抽象类就是属于这种 ''' from abc import  ABCMeta, abstractmethod #定义一个抽象类 class Alert:     __metaclass__ = ABCMeta     @abs

C#中的继承 (继承、抽象类和抽象方法、接口)

最近在研究重构,所以对于类,接口这些研究的也比较多,然后看各种资料,只要我感觉到能学到东西,就记录下来,感觉是件有意义的事情. 一.继承 什么是继承:继承是允许重用现有类去创建新类的过程.分类的原则是一个类派生出来的子类具有这个类的所有非私有的属性.1.继承C#中的类:C#不支持多重继承,C#类始终继承自一个基类(如果未在声明中指定一个基类,则继承自System.Object).派生类继承基类的语法如下:using System;public class Person{//这是基类}public

接口、抽象类、抽象方法、虚方法总结

一.接口 1.定义 1.1.访问修饰符 interface 接口名{成员可以为属性.方法.事件.索引器} 1.2.示例代码 public delegate void DelInfo(int Id); public interface IInformation { //属性 int Id { get; set; } int[] ArrayInt { get; set; } //方法 void IGetInfo(); //事件 event DelInfo IDelInfo; //索引器 long t

抽象方法和抽象类 & 接口

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

PHP面向对象(抽象类与抽象方法、接口的实现)

一.抽象类与抽象方法 1,任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的. 2,定义为抽象的类不能被实例化. 3, 被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现. 4,必须在子类中将抽象类的全部抽象方法全部实现才可以 <?php // 任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的. abstract class Person // 定义为抽象的类不能被实例化. { public $name;

面向对象的理解 抽象类&amp;接口

一.关于面向对象 1.什么是面向对象 在解释面向对象之前,先说说面向过程.学过C的同学都知道,C就是面向过程的一种语言.那什么是面向过程呢?比方说组装主机,对于面向过程,需要从0开始.买cpu,显卡,主板,电源,风扇,把这些都通过主板链接到一起.我需要清楚的知道主机组装的每一个步骤. 介绍了面向过程,再说会正题,什么是面向对象?对于上面的装主机过程面向对象会把主机先抽象成一个机箱,机箱里有cpu,显卡,主板,电源.用主机的人,不关心里面是怎么工作的,也不需要知道内部逻辑,只知道插上电源就能用.面

抽象类、抽象方法总结

首先区别抽象方法与虚方法:①从方法的声明来看:抽象方法只是方法的声明,没有方法体,关键字为abstract:虚方法则是有方法体的,关键子为virtual②从方法的声明位置来看:抽象方法只能声明在抽象类中:而虚方法则没有什么限制③从方法的使用来看:抽象方法必须在派生类中进行override,否则包含抽象方法的抽象类不能被实例化:而虚方法在派生类中则可以选择被重写,也可以选择不进行重写 抽象方法和虚方法的共同点:在使用的时候都是使用override关键字进行覆盖 抽象类普通类的区别与联系:①抽象类不

C#抽象类和抽象方法

如果一个类不与具体的事物相联系,而只是表达一种抽象的概念,仅仅是作为其派生类的一个基类,这样的类就是抽象类,在抽象类中声明方法时,如果加上abstract时就是抽象方法 抽象类概述及声明 抽象类与非抽象类的主要区别: ①.抽象类不能直接被实例化 ②.抽象类中可以只有抽象方法,也可以只有非抽象方法,也可以抽象方法.非抽象方法都有.(非抽象     类中不能有抽象方法). ③.抽象类不能被密封 以上会在下面例子中一一验证: class Program { static void Main(strin

第二章 C#继承&amp;继承类型&amp;虚函数&amp;抽象类&amp;抽象函数&amp;抽象方法&amp;隐藏方法

继承:实现继承,接口继承. C#不支持多实现继承,支持多接口继承 public class Class4:Class3,IInterface1,IInterface2 { } 虚方法:virtual 基类中声明virtual方法,在派生类中可以重写,并且调用的时候总是调用重写的方法. public class Class1 { public virtual void A() { Console.WriteLine("Class1.A"); } public void B() { Con