zoukankan      html  css  js  c++  java
  • SQL面向对象抽象类

    抽象类:
    抽象类,只为继承而出现,不定义具体的内容,只规定该有哪些东西;
    一般抽象类中只放置抽象方法,只规定了返回类型和参数;
    例:
    人 - 有吃饭,睡觉方法;
    男人 - 继承人抽象类,必须实现吃饭,睡觉的方法主体;
    女人 - 继承人抽象类,必须四线吃饭,睡觉方法的主体;

    抽象类中可以有普通属性,通过子类来使用;

    1.关键字:abstract
    2.抽象类可以包含抽象方法和普通方法
    3.abstract关键字可以定义方法为抽象方法,抽象方法可以没有函数体
    4.抽象类无法被实例化,抽象类主要做为一个基类,让别的类继承。
    5.sealed和abstract关键字不能同时出现
    6.如果一个子类继承自抽象类,那么子类中必须实现所有的抽象方法
    7.如果子类中没有实现父类的抽象方法,那么该子类必须是抽象类
    8.如果一个类里面包含抽象方法,那么该类一定是抽象类

    有抽象方法的,一定是抽象类
    抽象类中,不一定有抽象方法

    public abstruct Ren
    {
    public abstruct Void Eat();
    public abstruct Void Sleep();
    }


    接口:

    极度抽象的类。

    总公司--制定了规章制度(接口)--公司必须对员工进行考勤

    子公司1--遵循总公司的规章制度--具体实现考勤--打卡
    子公司2--遵循总公司的规章制度--具体实现考勤--点名

    接口和抽象类的区别:
    1.写法区别
    关键字:interface
    没有class关键字 类名一般用I开头
    不用写public因为本身就是public,不用写abstract接口里面所有的都是抽
    象的

    2.接口里面不能包含普通成员
    3.凡是继承接口的类,全部要实现接口里面的方法

    因为团队开发,每个人负责一个模块,我只负责人的基本生活部分,另外一个人负责工作部分,还有个人负责娱乐活动部分;

    public interface Work
    {
    void Skill();
    void Place();
    }
    
    public interface Sports
    {
    void Sport1();
    }
    
     

    类库:
    比如我写程序需要用到加法和减法两个功能,假如我不会写这两个功能,需要其它人帮忙;
    那么其它人就可以直接写一个类库,供我使用;

    1、源代码方法:
    可以将直接写好的.cs源代码文件,添加进我的解决方案文件夹下,在解决方案资源管理器中,
    项目上右键,添加,现有项,来添加此.cs源代码文件的使用,需要引入相应的命名空间;

    2、类库方法:
    一个dll文件,就是一个类库;
    它人新建一个类库,在里面编写类和相应的方法,生成后出现一个dll文件,拿过来,放在自己的
    程序文件夹里,在项目右键,添加引用,找到此dll类库文件添加,然后引用命名空间,就可以调用相应的类中的方法了;

    注意类一定要是public访问权限

    类库使用是多公司联合开发时使用的方式,因为每个公司都有自己的核心技术,我允许你使用,但不允许你
    知道我是怎么编写的,所以需要dll类库文件,因为dll文件是将源代码文件编译后的文件,看不到源代码,
    所以你只能调用不允许更改

    例:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using WenBenBianJi;
    //using WenBenBianJi;
    
    namespace ConsoleApplication1
    {
    定义抽象类
    public abstract class DongWu
    {
    public void Run()
    {
    
    }
    public abstract void Eat();
    }
    
    做一个人类来继承抽象类
    public class Ren:DongWu
    {
    public override void Eat()
    {
    Console.WriteLine("吃熟食");
    }
    }
    
    定义接口
    interface IUSB
    {
    开始读取USB
    void Start();
    
    关闭USB
    void Stop();
    }
    
    做一个鼠标类来实现USB接口
    class ShuBiao:IUSB
    {
    public void Start()
    {
    Console.WriteLine("鼠标启动了");
    }
    public void Stop()
    {
    Console.WriteLine("鼠标停止了");
    }
    }
    
    
    class Program
    {
    static void Main(string[] args)
    {
    
    Ren r = new Ren();
    r.Eat();
    
    ShuBiao s = new ShuBiao();
    s.Start();
    s.Stop();
    
    //BianJi bj = new BianJi();
    //WenBenBianJi.BianJi bj = new WenBenBianJi.BianJi();
    
    Console.ReadLine();
    }
    }
    }
  • 相关阅读:
    算法----(1)冒泡排序
    淘宝爬虫
    爬虫_豆瓣电影top250 (正则表达式)
    爬虫_猫眼电影top100(正则表达式)
    Android 简单调用摄像头
    Android 简单天气预报
    思维模型
    This view is not constrained, it only has designtime positions, so it will jump to (0,0) unless you
    Android studio preview界面无法预览,报错render problem
    Android studio 3.1.2报错,no target device found
  • 原文地址:https://www.cnblogs.com/zzzy0828/p/5771811.html
Copyright © 2011-2022 走看看