C#继承与多态

01:什么是继承?代码举例说明

public class Animal {
    private String name;
    private int month;
    private String species;

    public Animal() {

    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getMonth() {
        return month;
    }

    public void setMonth(int month) {
        this.month = month;
    }

    public String getSpecies() {
        return species;
    }

    public void setSpecies(String species) {
        this.species = species;
    }

    //吃东西
    public void eat(){
        Console.WriteLine(this.getName()+"在吃东西");
    }

}

///Cat  继承 Animal

public class Cat:Animal  {
    private double weight;

    public Cat() {

    }

    public double getWeight() {
        return weight;
    }

    public void setWeight(double weight) {
        this.weight = weight;
    }

    //跑动的方法
    public void run(){
        Console.WriteLine(this.getName()+"是一只"+getSpecies()+"的猫,他在跑。");
    }

}


02:什么是多态?代码举例说明

namespace TestFunc 
{ 
  public class Test 
  { 
    public static void Print(string str) 
    { 
      Console.WriteLine(str); 
    } 
     
    public static void Print(int i) 
    { 
      Console.WriteLine(i.ToString());//调用ToString方法把整型转换为string类型。 
    } 
     
    public static void Print(bool b) 
    { 
      if (b == true)//判断后输出结果。 
      { 
        Console.WriteLine("True"); 
      } 
      else 
      { 
        Console.WriteLine("False"); 
      } 
    } 
     
    public static void Print(params string[] str) 
    { 
      //这个方法实现了对未知数量的参数的输出。使用params关键字。 
      for (int i = 0; i < str.Length; ++i) 
      { 
        Console.WriteLine(str[i]); 
      } 
    } 
  } 
   
  public class MainClass 
  { 
    public static void Main() 
    { 
      bool a = false; 
      Test.Print("david","jack","mike"); 
      Test.Print(5); 
      Test.Print(true); 
      Test.Print(a); 
      Test.Print("successful!"); 
    } 
  } 
} 


03:什么是抽象类?代码举例说明

public abstract class BaseClass

{

public abstract void Eat();

public abstract void Walk();

public abstract void Speak();

}

public class human:BaseClass

{

public void Eat()

{

Console.WriteLine(“I can eat”);

}

public void Walk()

{

Console.WriteLine(“I can walk”);

}

public void Speak()

{

Console.WriteLine(“I can speak”);

}

]

class program

{

static void Main(string []args)

{

human man=new human();

Console.WriteLine(man.Walk);

Console.Readkey();

}

}


04:抽象类和接口的相同点和不同点?

相同点

(1) 都可以被继承 (2) 都不能被实例化 (3) 都可以包含方法声明 (4) 派生类必须实现未实现的方法

不同点


接口支持多继承;抽象类不能实现多继承。
接口只能定义抽象规则;抽象类既可以定义规则,还可能提供已实现的成员。
接口是一组行为规范;抽象类是一个不完全的类,着重族的概念。
接口可以用于支持回调;抽象类不能实现回调,因为继承不支持。
接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法;抽象类可以定义字段、属性、包含有实现的方法。
接口可以作用于值类型和引用类型;抽象类只能作用于引用类型。例如,Struct就可以继承接口,而不能继承类。
05:抽象方法和虚方法的不同点和相同点?

抽象方法是只有定义、没有实际方法体的函数,它只能在抽象函数中出现,并且在子类中必须重写;虚方法则有自己的函数体,已经提供了函数实现,但是允许在子类中重写或覆盖。
重写的子类虚函数就是被覆盖了


06:定义抽象类和抽象方法的关键字?

定义:abstract   重写:overide


07:书本上XML那一章中有哪些方法?代码一一举例

public void Read(string path) {
            //创建XML对象
            XmlDocument doc=new XmlDocument();
            //读取Xml文档
            doc.Load(path);
            //读取根节点
            XmlNode engineer = doc.DocumentElement;
            //循环遍历子节点
            foreach (XmlNode node in engineer.ChildNodes)
            {

            }
        }
08:书本上文件那一章中有哪些方法?代码一一举例


            ///检查文件是否存在
 public void isExists(string path)
 {
 if (File.Exists(path))
 {
 Console.WriteLine("该文件存在");
}
 }

///复制

public void Copy(string num, string mum)
            {
                File.Copy(num, mum);
            }


///移动
 public void lin(string num)
 {
 File.Delete(num);
}


///删除

public void lin(string num, string mum)
{
File.Move(num, mum);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值