接口,抽象类
SOLID设计原则
以抽象类作为切入点
例子:用abstract修饰符来修饰。
抽象类是指:函数成员并没有被完全实现的类
abstract class Student //抽象类
{
abstract public void Study() ; //抽象方法
}
完整例子:
1- 在一个基类中定义一个方法,但现在还没想好,就只定义一个抽象方法,然后派生类重写这个方法。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Vehicle v = new Car();
v.Run();
}
}
abstract class Vehicle
{
public void Stop()
{
Console.WriteLine("Stopped");
}
public abstract void Run();
}
class Car:Vehicle
{
public override void Run()
{
Console.WriteLine("Car is running....");
}
}
class Truck:Vehicle
{
public override void Run()
{
Console.WriteLine("Truck is running....");
}
}
}
/*抽象类和开闭原则*/
接口就是纯虚类
例子如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
iVehicle v = new Truck();
v.Run();
}
}
interface iVehicle
{
void Run();
}
class Car:iVehicle
{
public void Run()
{
Console.WriteLine("Car is running....");
}
}
class Truck:iVehicle
{
public void Run()
{
Console.WriteLine("Truck is running....");
}
}
}
/*抽象类和开闭原则*/
几个概念:
抽象类:是未完全实现逻辑的类
接口:完全未实现逻辑的类
抽象类和接口都不能实例化,主要是里面有方法或者实例并没有完全定义好。
平时我们什么的class是具体类,可以实例化的。