PHP面向对象之抽象类

在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地图