多态:
多态是由继承来实现的,
1、静态
函数的重载:相同的函数有多个定义,参数列表不一样相同,返回值类型可以相同也可以不同,
2、动态
继承关系来重写父类的方法,接口的实现:父类的实例调用被子类重写的方法,
总结:同一个方法,根据传入的参数不同,结果也不同,这就是多态
多态意味着多种形式,多态是由 继承来实现的,表现为一个接口多个功能,多态性分为静态、动态的
静态的:方法的重载、运算符重载
动态的:当一个定义的类需要在继承类中实现,通过抽象类和虚方法实现
总结:同一个方法,根据传入的参数不同,结果也不同,这就是多态
定义虚方法:
//访问修饰符 virtual 返回的类型,void 方法名()
void method()
{
//执行代码,也可以不写
}
重载:
重载是指具有相同的函数名称,但是参数类型不同,个数也不同,与返回值类型无关
如果参数的个数相同,那么参数的类型必须不同
如果参数的类型相同,那么参数的个数必须不同
相同的函数名称,方便在调用时使用,vs会自动匹配到相应的方法。
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)
{
DuoTai dt = new DuoTai();
int canshu = 3;
Console.WriteLine("多态:" + dt.Shuchu(canshu));
Console.WriteLine("----------------------");
ChongZai cz = new ChongZai();
int a = 10;
double b = 3.55;
Console.WriteLine("重载:" + cz.Add(a, b));
}
}
class DuoTai
{
public int Shuchu(int a)
{
var result = a * 10;
return result;
}
public double Shuchu(double a)
{
var result = a * 3;
return result;
}
public string Shuchu(string a)
{
var result = a + "!!";
return result;
}
}
class ChongZai
{
public int Add(int a, int b)
{
return a + b;
}
public double Add(double a, double b)
{
return a + b;
}
public double Add(double a, int b)
{
return a + b;
}
public double Add(int a, double b)
{
return a + b;
}
}
}