07抽象类特点

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _07抽象类特点
{
    class Program
    {
        static void Main(string[] args)
        {
            //1.抽象类、抽象成员必须标记为abstract,不能有实现,连大括号也不能有。
            //2.抽象成员必须在抽象类中。
            //3.抽象类不能被实例化,实例化后也没有用。
            //4.子类继承抽象类后,必须把父类中的抽象abstract成员都重写override。除非子类也是抽象类。

            //5.抽象成员访问修饰符不能是private
            //6.抽象类中可以包含实例成员。实例成员可以不被子类实现。
            //7.抽象类是有构造函数的,虽然不能被实例化。
            //8.如果父类抽象方法有参数,子类override重写时要传入对应参数,有返回值也类似有返回值。

            //父类方法有默认实现,父类需要被实例化时,可以考虑将父类定义为普通类,用虚方法实现多态。
            //父类没有默认实现,也不需要实例化,则将父类定义为抽象类。

            Student s = new Student();
            s.Say();
            s.Test("andu");
        }
    }

    abstract class Person
    {
        public abstract void Say();
        public abstract void Test(string name);
    }
    class Student : Person
    {
        public override void Say()
        {
            Console.WriteLine("呵呵");
        }

        public override void Test(string name)
        {
            Console.WriteLine("你好啊,{0}",name);
        }
    }

    abstract class Teacher : Person
    {

    }

}
时间: 2024-10-11 10:04:26

07抽象类特点的相关文章

百度房间卡是否可骄傲是快乐积分拉斯科

http://www.ebay.com/cln/ycn6646/-/167568259015/2015.02.07 http://www.ebay.com/cln/gon-n31/-/167197496017/2015.02.07 http://www.ebay.com/cln/hu_d027/-/167453250013/2015.02.07 http://www.ebay.com/cln/ywa2962/-/167301832012/2015.02.07 http://www.ebay.co

2016/07/11 PHP接口的介绍与实现

接口定义了实现某种服务的一般规范,声明了所需的函数和常量,但不指定如何实现.之所以不给出实现的细节,是因为不同的实体可能需要用不同的方式来实现公共的方法定义.关键是要建立必须实现的一组一般原则,只有满足了这些原则才能说实现了这个接口. 接口中不定义类成员!类成员的定义完全交给实现类来完成. 先来看一个简单的例子,有个全面的认识: 01 <?php 02 interface Fruit 03 { 04     const MAX_WEIGHT = 5;   //此处不用声明,就是一个静态常量 05

《Effective C++ 》学习笔记——条款07

***************************************转载请注明出处:http://blog.csdn.net/lttree******************************************** 二.Constructors,Destructors and Assignment Operators Rule 07:Declare destructors virtual in polymorphic base classes 规则07:为多态基类声明vir

Java核心技术之深入理解抽象类和接口

1 总体说明 抽象类 模板方法模式 接口 2 抽象类 抽象类是不能被实例化的类,一般设计成被子类继承,实现父类的抽象方法. 和普通类最大的不同就是不能实例化,可以声明抽象方法,让子类实现. 可以定义成员变量和普通方法 package tony.javacore.oop.abstractclass; import static tony.javacore.util.io.PrintUtils.println; /** * <p>抽象父类Shape</p> * @author tony

Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和性能分析)

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列 05 Vector详细介绍(源码解析)和使用示例 Java 集合系列 06 Stack详细介绍(源码解析)和使用示例 Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和

项目3-立体类族共有的抽象类

设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数.设计派生类CCube.CBall.CCylinder,分别表示正方体.球体及圆柱体.在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类).要求利用这个p指针,能够求出正方体.球体及圆柱体对象的表面积及体积. main()函数使用的贺老上的. /* * Copyright (c) 2015,烟台大学计算机学院 * All right reserved. * 作者:邵帅 * 文件:Demo.cpp

学习笔记 07 --- JUC集合

学习笔记 07 --- JUC集合 在讲JUC集合之前我们先总结一下Java的集合框架,主要包含Collection集合和Map类.Collection集合又能够划分为LIst和Set. 1. List的实现类主要有: LinkedList, ArrayList, Vector, Stack. (01) LinkedList是双向链表实现的双端队列:它不是线程安全的.仅仅适用于单线程. (02) ArrayList是数组实现的队列,它是一个动态数组.它也不是线程安全的,仅仅适用于单线程. (03

07——为多态基类声明为virtual析构函数

当基类确定被继承的时候,析构函数声明为virtual是必须的 当返回的派生类的指针或引用的时候,调用析构函数容易发生内存泄漏 当基类作为抽象类使用,声明pure virtual析构函数 析构函数的顺序————派生类的析构函数先被调用(先析构基类成员) 构造函数的顺序————派生类的构造函数先被调用(先构造基类成员) 07--为多态基类声明为virtual析构函数

PHP的抽象类和接口

抽象类与接口相似,都是一种比较特殊的类.抽象类是一种特殊的类,而接口也是一种特殊的抽象类.它们通常配合面向对象的多态性一起使用.虽然声明和使用都比较容易,但它们的作用在理解上会困难一点. ①抽象类 在OOP语言中,一个类可以有一个或多个子类,而每个类都有至少一个公有方法作为外部代码访问它的接口.而抽象方法就是为了方便继承而引入的.本节中先来介绍一下抽象类和抽象方法的声明,然后再说明其用途.在声明抽象类之前,我们先了解一下什么是抽象方法.抽象方法就是没有方法体的方法,所谓没有方法体是指在方法声明时