ITPub博客

首页 > Linux操作系统 > Linux操作系统 > c# abstract抽象类及抽象方法_继承

c# abstract抽象类及抽象方法_继承

原创 Linux操作系统 作者:wisdomone1 时间:2012-03-08 13:04:54 0 删除 编辑
//抽象类不能同时是密封的 
    //可包括抽象成员
    //不能直接实例化
    //必须是其它类的基类
    //抽象类可以继承抽象类
    abstract class Team
    {
        public abstract void G();//抽象类中的抽象方法;仅含有声明没有方法体;且以;分号结束

    }
    class sun : Team //如果继承了抽象类的类是实体类,它必须实现抽象基类的抽象方法,即father.G
    {
        private string _c;
        //abstract或extern表明可以不用声明方法体
        public void Find(string c)
        {
            this._c = c;

        }
        //对抽象基类的抽象方法必须进行重写override方可实现其真正使用
        public override void G()
        {
            Console.WriteLine("类sun实现了抽象基类的抽象方法G");
        }

    }


 static void Main(string[] args)
        {
            //sun t1 = new Team();//不能直接创建抽象类或接口的实例
            sun s1 = new sun();
            s1.G();
            Console.ReadKey();
        }








namespace learnindexindicator
{
    //抽象类不能同时是密封的 
    //可包括抽象成员
    //不能直接实例化
    //必须是其它类的基类
    //抽象类可以继承抽象类
    abstract class Team
    {
        public abstract void G();//抽象类中的抽象方法;仅含有声明没有方法体;且以;分号结束

    }

    //抽象类继承抽象类时,可以不用实现其父级抽象类的抽象方法
    //抽象类可以包括实体方法和抽象方法
    abstract class SubTeam:Team
    {
        public void ShutDown()
        {
             Console.WriteLine("抽象类中的非抽象方法");
        }
    }
    class sun : Team //如果继承了抽象类的类是实体类,它必须实现抽象基类的抽象方法,即father.G
    {
        private string _c;
        //abstract或extern表明可以不用声明方法体
        public void Find(string c)
        {
            this._c = c;

        }
        //对抽象基类的抽象方法必须进行重写override方可实现其真正使用
        public override void G()
        {
            Console.WriteLine("类sun实现了抽象基类的抽象方法G");
        }

    }

    class Three : SubTeam
    {
        public override void G()
        {
            Console.WriteLine("在实体类多级继承抽象类时实现了抽象类的抽象方法G");
        }
    }
}



class Program
    {
        static void Main(string[] args)
        {
            //sun t1 = new Team();//不能直接创建抽象类或接口的实例
            sun s1 = new sun();
            s1.G();
            Console.ReadKey();

            Console.WriteLine("---------------------------");
            Three sub1 = new Three();
            sub1.G();//实体类继承抽象父类的抽象方法的重写
            sub1.ShutDown();//实体类的继承BASE父类的实体方法shutdown
            Console.ReadKey();
        }
    }













//抽象类不能同时是密封的 
    //可包括抽象成员
    //不能直接实例化
    //必须是其它类的基类
    //抽象类可以继承抽象类
    abstract class Team
    {
        public abstract void G();//抽象类中的抽象方法;仅含有声明没有方法体;且以;分号结束

    }

    //抽象类继承抽象类时,可以不用实现其父级抽象类的抽象方法
    //抽象类可以包括实体方法和抽象方法
    abstract class SubTeam:Team
    {
        public void ShutDown()
        {
             Console.WriteLine("抽象类中的非抽象方法");
        }
    }
    class sun : Team //如果继承了抽象类的类是实体类,它必须实现抽象基类的抽象方法,即father.G
    {
        private string _c;
        //abstract或extern表明可以不用声明方法体
        public void Find(string c)
        {
            this._c = c;

        }
        //对抽象基类的抽象方法必须进行重写override方可实现其真正使用仅在继承时才可用override和sealed
        //测试override和sealed的组合,如无sealed,是否在子类可重写方法
        public override    void G()
        {
            Console.WriteLine("类sun实现了抽象基类的抽象方法G");
        }

    }

    class sunof1 : sun
    {
        public override void G()
        {
            base.G();
            Console.WriteLine("类sunof1重写了sun类的G方法");
        }

        
    }





    class Three : SubTeam
    {
        public override void G()
        {
            Console.WriteLine("在实体类多级继承抽象类时实现了抽象类的抽象方法G");
        }
    }
}






    class Program
    {
        static void Main(string[] args)
        {
            //sun t1 = new Team();//不能直接创建抽象类或接口的实例
            sun s1 = new sun();
            s1.G();
            Console.ReadKey();

            Console.WriteLine("---------------------------");
            Three sub1 = new Three();
            sub1.G();//实体类继承抽象父类的抽象方法的重写
            sub1.ShutDown();//实体类的继承BASE父类的实体方法shutdown
            Console.ReadKey();

            sunof1 so1 = new sunof1();
            so1.G();
            Console.ReadKey();
        }
    }

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-718052/,如需转载,请注明出处,否则将追究法律责任。

上一篇: c# 索引指示器
请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb qq: 305076427 微博: wisdomone9

注册时间:2008-04-04

  • 博文量
    2164
  • 访问量
    11710910