zoukankan      html  css  js  c++  java
  • ASP.Net软件工程师基础(三)

    1、多态

    答:

    (1)虚方法

    public class Child : Person
    {
        public void Speach()
        {
            base.Speach();
        }
    
        public virtual void Say()//虚方法
        {
        }
    }
    虚方法的定义

    (2)抽象方法(必须声明在抽象类中)

    public abstract class Animal
    {
        public abstract void Say();
    }
    抽象方法的定义

    (3)接口

    public interface ISay
    {
        void Say();
    }
    接口的定义

    虚方法和抽象方法的区别

    虚方法必须有实现,抽象方法必须没有实现

    抽象方法必须在抽象类中声明,虚方法可以出现在抽象类中

    抽象方法必须在子类中重写,虚方法可以被重写

    (4)重写(虚方法、抽象方法、接口中定义的方法)

    public class Bird : Animal
    {
        public override void Say()
        {
            throw new NotImplementedException();
        }
    }
    重写

    虚方法和抽象方法的区别

    虚方法:

    1.父类中必须有实现。

    2.子类中可以不重写。

    3.虚方法可以在普通类中。(虚方法所在的类是可以被实例化的。)

    抽象法:

    1.父类中不能有任何实现。

    2.子类中必须重写(除非:子类也是一个抽象类。)

    3.抽象方法必须在抽象类中。

    什么时候用虚方法?

    1.父类本身需要被实例化

    2.这个方法在父类中有实现的必要(有意义)(方法有默认的实现)

    什么时候用抽象方法?

    1.在当前系统中,父类绝对不会被实例化。Person p=new Person();

    2.在父类中不知道如何去实现这个方法(没有默认的实现。)

    今天到这,明天重点接口!!!

    本文版权归作者和博客园共有,来源网址:http://www.cnblogs.com/tq1226112215/
    欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    8.2
    Telnet远程控制协议
    2020/6/29
    HCIA VRP基础命令(二)
    HCIA VRP基础命令(一)
    解决ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'报错问题
    nginx配置文件nginx.conf
    nginx服务器搭建
    FTP服务器
    NFS
  • 原文地址:https://www.cnblogs.com/tq1226112215/p/3456757.html
Copyright © 2011-2022 走看看