面向对象(抽象类)

发布时间:2019-01-20  栏目:Python  评论:0 Comments

在oop语言中,一个类可以有一个或多个子类,而各类类都有一个国有方法做为外部代码访问其的接口。而空虚方法就是为了方便继承而引入的。

抽象类:
抽象类,只为继承而产出,不定义具体的内容,只规定该有怎么着东西;
一般抽象类中只放置抽象方法,

控制2个为啥?
怎么着是架空方法?
在类里面定义的远非方法体的艺术就是空洞方法,所谓的没有办法体指的是,在格局讲明的时候从不大括号以及其中的始末。而是一贯在点子名后加一个分公司停止即可。其它在注解抽象方法时还要加一个至关紧要词
abstract来修饰。
什么样是抽象类?
只要一个类里面有一个格局是空虚方法,那么那几个类就要定义为抽象类,抽象类也要使用首要词修饰(abstract)

 

难忘一点:只要有一个艺术是空虚的主意,那些类就必须注脚为抽象类。

1、关键字 abstract
2、抽象类可以涵盖抽象方法和平凡方法
3、abstract关键字可以把办法成为抽象方法,抽象方法可以没有函数体
4、抽象类无法被实例化,抽象类首要做为一个基类,让别的类继承。5、abstract关键字和sealed关键字(禁止继续)无法同时出现
6、假使一个子类继承自抽象类,那么子类中务必贯彻所有的架空方法
7、假若子类中一向不达成父类的抽象方法,那么该子类必须是抽象类
8、如若一个类里面含有抽象方法,那么该类一定是抽象类

abstract class demo{
 public $name;
 abstruct function CheckUser();
 abstruct function CheckPassword();
}

 

  

 

瞩目:抽象类不能发出实例对象,所以无法直接动用。
    
抽象方法是做为子类重载的沙盘使用的,定义抽象类相当于概念了一种标准,那种专业需要子类去遵循,子类继承抽象类后,把抽象类里边的悬空方法漫天都完毕,否则子类中还存在抽象方法,那么子类如故抽象类,如故不可能实例化类

接口:
极端抽象的类。

虚幻方法是为着子类继承使用,定义抽象类约等于概念了一种标准,那种专业子类必须严谨执行,子类继承抽象类之后,把抽象类里边的抽象方法漫天落到实处,缺一不可。唯有一切挥毫完,才能实例化。

接口与抽象类的界别:
1、写法分别
关键字:interface
没有class关键字
写法 interface 类名{} 类名规则:一本用I开首
绝不写public,因为接口本身就是public,不用写abstract
因为接口里面有着的都是空洞的

2、接口里面无法包涵普通成员
3、凡是继承接口的类,全体要促成接口里面的措施

 

接口的听从:

可以将次第拆分成八个模块,方便多少人支付。

概念了子类了子类必须包蕴的意义

接口内没有函数体,只是规定亟待开展什么操作,可是从未具体的贯彻格局,有子函数自己定义使用。

 

//类库
有些时候大家须求用到旁人写的类

1、借使此类是源代码类 .cs文件
起尤其文件获得项目中,可以挑选添加新建项或拔取现有项
引用相应的命名空间

2、假如此类不是源码,而是编译后的 .dll文件(编译后的类库)
将文件获得项目中,添加引用–浏览–找到.dll文件
引入相应的命名空间

 

 

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace 抽象类
 8 {
 9     //定义抽象类
10     public abstract class DongWu
11     {
12         public void Run()
13         { 
14         }
15         public abstract void Eat();//抽象方法可以没有函数体
16        
17  
18     }
19 
20     public class Ren : DongWu
21     {
22         public override void Eat()
23         {
24             Console.WriteLine("吃熟食");
25         }
26  
27     }
28 
29     //定义接口
30     interface IUSB
31     {
32         //开始读取USB
33         void Start();
34 
35         //关闭USB
36         void Stop();
37  
38     }
39 
40     //做一个鼠标的类来实现USB接口
41     class ShuBiao:IUSB
42     {
43         public void Start()
44         {
45             Console.WriteLine("鼠标启动了");
46         }
47         public void Stop()
48         {
49             Console.WriteLine("鼠标停止了");
50         }
51     
52     }
53 
54 
55     class Program
56     {
57         static void Main(string[] args)
58         {
59             //DongWu dw = new DongWu();--错误,抽象类无法被实例化
60             Ren  r=new Ren();
61             r.Eat();
62             Console.ReadLine();
63             
64         }
65     }
66 
67 
68 
69 
70 
71 }

 

留下评论

网站地图xml地图