Interfaces and Abstractions
Interface Variables
A variable can use an interface type instead of a concrete class type.
Interface Variables
InterfaceVariables.cs
using System;
interface IGreeter
{
string Greet();
}
class FriendlyGreeter : IGreeter
{
private readonly string name;
public FriendlyGreeter(string name)
{
this.name = name;
}
public string Greet()
{
return "hello " + name;
}
}
class Program
{
static void Main()
{
string name = ;
IGreeter greeter = new FriendlyGreeter(name);
string message = greeter.Greet();
Console.WriteLine($"name={name}");
Console.WriteLine($"message={message}");
}
}
using System;
interface IGreeter
{
string Greet();
}
class FriendlyGreeter : IGreeter
{
private readonly string name;
public FriendlyGreeter(string name)
{
this.name = name;
}
public string Greet()
{
return "hello " + name;
}
}
class Program
{
static void Main()
{
string name = ;
IGreeter greeter = new FriendlyGreeter(name);
string message = greeter.Greet();
Console.WriteLine($"name={name}");
Console.WriteLine($"message={message}");
}
}
using System;
interface IGreeter
{
string Greet();
}
class FriendlyGreeter : IGreeter
{
private readonly string name;
public FriendlyGreeter(string name)
{
this.name = name;
}
public string Greet()
{
return "hello " + name;
}
}
class Program
{
static void Main()
{
string name = ;
IGreeter greeter = new FriendlyGreeter(name);
string message = greeter.Greet();
Console.WriteLine($"name={name}");
Console.WriteLine($"message={message}");
}
}
interface variable
An interface variable can hold any object that implements that interface.