A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 倚楼听雨 中级黑马   /  2014-7-30 22:41  /  859 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 倚楼听雨 于 2014-8-3 00:03 编辑

能够实现允许某个类被继承,但不允许其中的某个方法被覆写么?

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

5 个回复

倒序浏览
可以。类前加public,方法前加sealed。
默认(无virtual关键字)的方法也是不能被override的。

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

回复 使用道具 举报
我是来碰运气拿币的。答案不知道哦。不好意思啊。:L
回复 使用道具 举报
如果访问修饰符是public 的方法,继承的类可以访问的,这个方法也可以被覆盖的,:base(参数)后,原来的方法被覆盖。

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

回复 使用道具 举报

回帖奖励 +2

1.类的成员声明中,可以声明与继承而来的成员名同名的成员;
2.此时派生类的成员覆盖了基类的成员;
3.这种情况下,编译器不会报告错误,但会给出一个警告;
4.对派生类的成员使用new关键字,可以关闭这个警告。
using System;
class Vehicle//定义汽车类
{
        public int wheels;//公有成员:轮子个数
        protected float weight;//保护成员;重量
        public Vehicle(){;}
        public Vehicle(int w,float g)
        {
               wheels =w;
               weight=g;
        }
        public void Speak()
       {
                Console.WriteLIne("the w vehicle is speaking!");
       }
}
class Car:Vehicl //定义轿车类
{
       int passengers;//私有成员:乘客数
      public Car(int w,float g,int p)
      {
             wheels=w;
             weight=g;
             passengers=p;
     }
    new public void Speak()
    {
           Console.WriteLine("Di-di!");
    }
}









评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

回复 使用道具 举报
正解,谢谢,欢迎水贴,前来拿分
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马