方法学习

一、继承

1、被继承类——父类/基类;继承类——子类/派生类;

2、子类可以拥有父类的全部特性;

3、子类可以扩展父类功能,实现重用;

4、C#只支持单继承。

using System;

namespace lesson01{
	
	public  class  Person {        
		public string name;        
	}   

	public  class  Student : Person {            //继承父类——修饰符 class 子类名 :父类名   
		public void Gua () {               
			Console.WriteLine ("哎呀,挂科了");  
		}    
	}   
	class MainClass {        
		public static void Main ( string[] args ) {    
			Person p = new  Person () ;    
			p.name = "张三";              
		    Student s = new Student () ;   
		    s.name = "李四";          
			s.Gua () ;    
		}   
	}
}


二、方法重载——方法名一样的多个方法,便于调用。

1、方法名一致;

2、方法中参数列表不同(参数类型不同、参数个数不同);

3、在方法重载中,与返回值类型无关。

using System;

namespace lesson01{
	
	public  class  Person  {      
  
		public int Sum (int a, int b) {             
			return a + b;       
		}       
		public float Sum (float a, float b) {     
			return a + b;   
		}        
		public int Sum (int a, int b,int c) {  
			return a + b + c;        
		}  
	}  
	class MainClass {   
		public static void Main ( string[] args ) { 
			Person p = new Person () ;                  //系统会自动根据实际参数类型和数量选择调用的方法。        
			Console.WriteLine (p.Sum (3,7) );  
			Console.WriteLine (p.Sum (3.1f,7.2f) );
			Console.WriteLine (p.Sum (3,7,6) );
		}  
	}
}




三、方法替换 ——子类继承父类后,可隐藏父类中的方法,在子类中重新实现。

using System;

namespace lesson01{
	
	public class  Super { 
		public void A () {      
			Console.WriteLine ("此方法在父类Super中定义");  
		}  
	}   

	public class Sub : Super  {    
		public new void A () {    //在子类中重新实现父类中定义的方法,加new关键字   
			Console.WriteLine ("此方法在子类Sub中定义");                     
		}   
	}  

	class MainClass {      
		
		public static void Main ( string[] args ) {     
			Super super  = new Super  () ;   //使用父类类型引用父类对象            
			super.A () ;                     //调用父类方法     

			Sub sub  = new Sub  () ;        //使用子类类型引用子类对象  
			sub.A () ;                      //调用子类方法      

			Super c  = new Sub  () ;        //使用父类类型引用子类对象      
			c.A () ;                        //调用父类方法        
		}  
	}
}


四、虚方法

1、方法和属性可以虚,字段不可以;

2、虚方法可以不用在类中;

3、虚方法可以在父类中实现。

using System;

namespace lesson01{
	
	public class  Super {      
		public  virtual void B () {      //虚方法要添加virtual关键字   
			Console.WriteLine ("此方法在父类Super中定义");         
		}  
	}   
	public class Sub : Super  {   
		public override  void B() {      //重写使用override      
			Console.WriteLine ("此方法在子类Sub中定义");     
		}    
	}  
	class MainClass {        
		public static void Main ( string[] args ) {      
			Super super  = new Super  () ;  //使用父类类型引用父类对象    
			super.B () ;                    //调用父类方法     

			Sub sub  = new Sub  () ;        //使用子类类型引用子类对象         
			sub.B () ;                      //调用子类方法        

            //多态——使用父类类型,调用子类中实现的方法。         
			Super c  = new Sub  () ;        //使用父类类型引用子类对象             
			c.B () ;                        //调用子类方法         
		} 
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值