正文

修饰符的一个例子new virtual override sealed2007-10-13 19:02:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/jixian/30071.html

分享到:

//与java不同,c#不允许使用对象实例调用静态方法,让我惊讶啊!! //c++可不这样 using System;using System.Collections.Generic;using System.Text; namespace __5{    //class Program    //{    //    static void Main(string[] args)    //    {     //    }    //}     abstract public class person    {        string name;        string ssn;        int age;        float salary;         public person(string name, string ssn, int age, float sal)        {            this.name = name;            this.ssn = ssn;            this.age = age;            this.salary = sal;        }         private string getssn()        //??        {            return ssn;        }         protected int getage()        {            return age;        }        internal float getsalary()        {            return salary;        }        string getname()        {            return name;        }         protected static string  getbloodcolor()              //静态方法        {            return "red";        }        static int getnumberofeyes()        {            return 2;        }         public override string ToString()        {            return name;        }        public override int GetHashCode()        {            //return base.GetHashCode();            return 12222;        }        public sealed override bool Equals(object obj)        {            //return base.Equals(obj);            person p = obj as person;            if (p == null)                return false;            return this.name.Equals(p.getname());        }        public virtual void calcinvestments()        {            Console.WriteLine("person funds");        }         public virtual void calcdebt()        {            Console.WriteLine("person debt");        }        public abstract void work();           }     public class man : person    {        public man(string name, string ssn, int age, float sal) : base(name, ssn, age, sal) { }         public override void work()        {            Console.WriteLine("works like a dog");        }        public override void calcinvestments()        {            //base.calcinvestments();            Console.WriteLine("man funds");        }        public new void calcdebt()        {            Console.WriteLine("man debt");        }         public static void Main(string[] agrs)        {            man m = new man("jack","12345678",23,40000f);            //Console.WriteLine(m.getbloodcolor());           //与java不同,c#不允许使用对象实例调用静态方法             //Console.WriteLine(m.getnumberofeyes());        //无访问权限            //Console.WriteLine(m.getssn());            //Console.WriteLine(m.getname());             Console.WriteLine(m.getsalary());            Console.WriteLine(m.getage());             m.calcinvestments();             person p = m as person;            p.calcinvestments();            Console.WriteLine("----");            ((person)m).calcinvestments();             m.calcdebt();            p.calcdebt();            Console.WriteLine("----");            ((person)m).calcdebt();        }    }}

阅读(1979) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册