抽象类,抽象方法

using System;
namespace abstractTest
{
abstract class abstractClass //抽象类的定义,可以直接实现吗?
{
internal abstract void absMethod() ;//抽象方法:private访问修饰可以吗
public void noAbsMethod()//非抽象方法
{
Console.WriteLine("抽象类里面可以有非抽象方法,且可以实现!");
}
public static void staticMethod()
{
Console.WriteLine("抽象类里面可以有静态方法,且可以实现!");
}
}
class testAbstract:abstractClass
{
internal override void absMethod()
{
Console.WriteLine("absMethod() 必须在抽象类的派生类中实现!");
}
public new void noAbsMethod() //删除此方法会怎样?new 换为override会怎样?
{
Console.WriteLine("隐藏抽象类里面的非抽象方法!");
}
}
class myApp
{
static void Main() //_p85
{
testAbstract abs = new testAbstract(); //替换为abstractClass可以吗
abs.noAbsMethod();
abs.absMethod();
// testAbstract.staticMethod();
}
}
}
/*
* 抽象类及其派生类的方法访问修饰符必须一致
* 成员的访问修饰符必须要protected以上;考虑到类的重用,要internal或者public
* 抽象类里面可以没有抽象方法;可以有非抽象方法及静态方法,并直接实现他们.
* */



浙公网安备 33010602011771号