C#抽象方法与抽象实例--C#基础

1、抽象方法与抽象类的声明

1)抽象类和抽象方法声明必须包含abstract

2)抽象方法的声明没有方法体:public abstract void fly();

3)抽象类和抽象法前加上public,不加默认会是private。

4)抽象类的声明就是为了派生和继承,标记为sealed,是不可以继承的。

5)抽象类不能实例化,也就是不能用new、sealed,必须通过继承由派生类实现其抽象方法

6)抽象类可以包含非抽象方法

7)笔记原文:

Program.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//抽象类加abstract
//public abstract Fky(){}//默认是private
//public abstract void fly();抽象方法声明没有方法体
//抽象类和抽象方法多的声明必须包含abstract
//抽象类的声明就是为了派生和继承,如果标记为sealed,不可以继承了
//抽象类不能实例化,必须通过继承由派生类实现其抽象方法,因此不能用new、sealed
//抽象类中可以包含非抽象方法
namespace 抽象类与抽象方法
{
class Program
{
static void Main(string[] args)
{

}
}
}

2、抽象类与抽象实例

Pow.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 抽象类和抽象法实例
{
public abstract class Pow
{
public abstract void PowMehod(int x,int y);
}
}

Pow1.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 抽象类和抽象法实例
{
class Pow1:Pow
{
public override void PowMehod(int x,int y)
{
int pow = 1;
for (int i = 1; i <= y; i++)
{
pow *= x;
}
Console.WriteLine("求幂的结果是:"+pow);
}
}
}

Pow2.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 抽象类和抽象法实例
{
class Pow2:Pow
{
public override void PowMehod(int x, int y)
{

Console.WriteLine("求幂的结果:"+System.Math.Pow(x,y));
}
}
}

Program.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 抽象类和抽象法实例
{
class Program
{
static void Main(string[] args)
{
//Pow pow = new Pow();抽象类不可以实例化
Pow1 pow1 = new Pow1();
pow1.PowMehod(2,10);
Pow2 pow2 = new Pow2();
pow2.PowMehod(2,10);
Console.ReadKey();
//abstract方法:没有自己的实现。
//virtual方法
//共同点:都可以通过overrid来实现对原来的方法的重写
}
}
}

时间: 2024-10-18 13:14:26

C#抽象方法与抽象实例--C#基础的相关文章

Oracle之索引(Index)实例讲解 - 基础

Oracle之索引(Index)实例讲解 - 基础 索引(Index)是关系数据库中用于存放表中每一条记录位置的一种对象,主要目的是加快数据的读取速度和数据的完整性检查.索引的建立是一项技术性要求非常高的工作. 一般在数据库设计阶段就要考虑到如何设计和创建索引. 1. 创建索引 创建索引的语法: CREATE [UNIQUE] INDEX [schema.] index ON [schema.] table (column [ASC | DESC], column [ASC | DESC]...

canvas实例(基础)

JS实现五子棋大战:GitHub源码 知识点总结: 第一步.基础: 1 //获取canvas 2 var chess = document.getElementById('chess'); 3 4 //获取上下文,创建上下文对象 5 var context = chess.getContext('2d'); canvas绘制直线.设置画笔颜色 1 //设置画笔颜色 2 context.strokeStyle = '#bfbfbf'; 3 4 context.moveTo(0, 0); 5 con

141-PHP类的抽象方法和继承实例(一)

<?php abstract class ren{ //定义人类 //定义成员属性 protected $name=''; protected $age=0; //定义成员方法 public function __construct($name,$age){ $this->name=$name; $this->age=$age; } //定义抽象方法 abstract public function getinfo(); } class boy extends ren{ //继承ren类

Android中Handler的使用方法及实例(基础回顾)

Handler使用例1 这个例子是最简单的介绍handler使用的,是将handler绑定到它所建立的线程中.本次实验完成的功能是:单击Start按钮,程序会开始启动线程,并且线程程序完成后延时1s会继续启动该线程,每次线程的run函数中完成对界面输出nUpdateThread...文字,不停的运行下去,当单击End按钮时,该线程就会停止,如果继续单击Start,则文字又开始输出了. 软件界面如下: 实验主要部分代码和注释: MainActivity.java: 1 package com.ex

网络编程-UDP程序实例(基础)

1 package com.yyq; 2 3 import java.net.DatagramPacket; 4 import java.net.DatagramSocket; 5 import java.net.InetAddress; 6 import java.net.Socket; 7 import java.net.SocketException; 8 import java.nio.charset.MalformedInputException; 9 10 /* 11 * Socke

黑马程序员---java基础-Java类 继承&amp;抽象&amp;接口

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.继承 继承是所有OOP语言不可缺少的部分,在java中使用extends关键字来表示继承关系.当创建一个类时,总是在继承,如果没有明确指出要继承的类,就总是隐式地从根类Object进行继承.比如下面这段代码: 1 class Person { 2 public Person() { 3 4 } 5 } 6 class Man extends Person { 7 public Man()

大话设计模式学习笔记——面向对象基础

前言 好记性不如烂"笔头"系列--大话设计模式学习笔记 目录 面向对象基础 面向对象基础 什么是类与实例 一切事物皆为对象,即所有的东西老师对象,对象就是可以看到.感觉到.听到.触摸到.尝到.或闻到的东西.准确地说,对象是一个自包含的实体,用一组可识别的特性和行为来标识.面向对象编程,英文叫 Object-Oriented Programming,其实就是针对对象来进行编程的意思.类就是具有相同属性和功能的对象的抽象集合.实例就是一个真实的对象.比如我们属于'人'类,而个人就是'人'类

基础加强

Main函数是什么? 在程序中使用Main函数有什么需要注意的地方? CLR是什么? 程序集是什么? 当运行一个程序集的时候,CLR做了什么事情? 值类型的默认值是什么? 声明一个变量时在内存中做了什么事情? 初始化一个变量的时候又在内存中做了什么事情? new关键字做的事情? 数组一旦创建后,能不能修改数组的长度? 如何声明一个多维数组? 如何获取多维数组的总长度? 如何声明一个交错数组? 交错数组的本质是什么? 为什么要有方法? 如何实现方法的重载? 引用参数(ref)和输出参数(out)的

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

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