代码如下,为什么结果是非机动车!禁止驶入?
public class Vehicle
    {
        private int speed = 10;        public int Speed
        {
            get { return speed; }
            set { speed = value;
            Console.Write("禁止驶入!");
            }
        }
        
    }
    public class NewVehicle : Vehicle {        public NewVehicle() { 
            if(this.Speed>=20){
                Console.Write("机动车1");
            
            }else{
                Console.Write("非机动车");
            }
        }
    }
//这里是测试类
public class A{
 static void main(){
  NewVehicle tong=new NewVehicle();
  tong.Speed=15;
}}

解决方案 »

  1.   

    当程序运行到:NewVehicle tong=new NewVehicle(); 时,tong.Speed=10(这是从父类继承的)
    所以Console.Write("非机动车"); 
    当执行tong.Speed=15
    之后,肯定会执行Console.Write("禁止驶入!"),不管Speed的值是多少
      

  2.   

    当程序运行到:NewVehicle tong=new NewVehicle(); 时,tong.Speed=10(这是从父类继承的) 
    所以Console.Write("非机动车"); 
    当执行tong.Speed=15 
    之后,肯定会执行Console.Write("禁止驶入!"),不管Speed的值是多少正确!
      

  3.   

    程序运行main方法里面的NewVehicle tong=new NewVehicle()时 ,调用NewVehicle()方法,又NewVehicle()继承了Vehicle方法 ,所以要private int speed = 10; 是就会输出Console.Write("禁止驶入!"); 当运行到tong.Speed=15;时,调用NewVehicle()中if(this.Speed>=20){ 
                    Console.Write("机动车1"); 
                
                }else{ 
                    Console.Write("非机动车"); 
                } 的判断语句,就会输出“非机动车”。