许明会的计算机技术主页

Language:C,C++,.NET Framework(C#)
Thinking:Design Pattern,Algorithm,WPF,Windows Internals
Database:SQLServer,Oracle,MySQL,PostSQL
IT:MCITP,Exchange,Lync,Virtualization,CCNP

导航

抽象类,抽象方法


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
 * 抽象类里面可以没有抽象方法;可以有非抽象方法及静态方法,并直接实现他们.
 * 
*/

posted on   许明会  阅读(186)  评论(0编辑  收藏  举报

努力加载评论中...
点击右上角即可分享
微信分享提示