抽象类与抽象方法

抽象类:abstract关键词
抽象类不能造自己的实例对象,只能作为父类使用
抽象类中可以有抽象属性和抽象方法,必须要在子类中实现
有抽象方法和抽象属性的一定是抽象类
但抽象类不一定非得有抽象方法和抽象属性
抽象类仍然可以作为基类进行与子类之间的类型转换

using System;
using System.Collections.Generic;
using System.Text;

namespace 抽象类
{
    class Program
    {
        static void Main(string[] args)
        {
            /*
            Fruit f;//抽象类不能直接创建对象,一般用它来引用子类对象
            f = new Apple();
            f.chandi();
            f = new Pineapple();
            f.chandi();
            Console.ReadLine();
            //同一行代码“f.chandi()”,由于f所引用的对象不同而输出不同的结果。
             可以按以下公式编写代码
             抽象类 抽象类变量名=new 继承此抽象类的具体子类名();*/

            parent p;
            p = new child();
            p.Message = "Hello";//调用child中属性
            Console.WriteLine(p.Message);//打印属性
            Console.ReadLine();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Text;

namespace 抽象类
{
    abstract class parent
    {
        public abstract string Message //抽象属性
        {
            get;
            set;
        }
    }
}
using System;
using System.Collections.Generic;
using System.Text;

namespace 抽象类
{
    class child:parent
    {
        private string _msg;
        public override string Message //抽象类中的抽象属性,要在子类中实现
        {
            get
            {
                return _msg;
            }
            set
            {
                _msg=value;
            }
        }
    }
}
时间: 2024-12-28 08:45:29

抽象类与抽象方法的相关文章

PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化)/约束类型/魔术方法小结

  前  言  OOP  学习了好久的PHP,今天来总结一下PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化). 1  PHP中的抽象类与抽象方法 1.什么是抽象方法?              没有方法体 {} 的方法,必须使用abstract 关键字修饰.这样的方,我们叫做抽象方法.                    abstract function say(); //    抽象方法 2.什么是抽象类?        

抽象类、抽象方法总结

首先区别抽象方法与虚方法:①从方法的声明来看:抽象方法只是方法的声明,没有方法体,关键字为abstract:虚方法则是有方法体的,关键子为virtual②从方法的声明位置来看:抽象方法只能声明在抽象类中:而虚方法则没有什么限制③从方法的使用来看:抽象方法必须在派生类中进行override,否则包含抽象方法的抽象类不能被实例化:而虚方法在派生类中则可以选择被重写,也可以选择不进行重写 抽象方法和虚方法的共同点:在使用的时候都是使用override关键字进行覆盖 抽象类普通类的区别与联系:①抽象类不

走近抽象类与抽象方法

一.定义 MSDN:抽象类是一些留有部分或全部成员未实现的类,以便可以由派生类来提供实现.在C#中,当一个类被abstract关键字修饰,我们就称之为抽象类. 二.抽象类的特点 1.抽象类不能被实例化. 1-1 ? 1 2 3 4 public abstract class People {       protected abstract void Speak(string s); } 1-2 ? 1 People p = new People(); 当我们试图执行1-2的代码时,编译器提示如

关于Java 实现抽象类的抽象方法的特性的利用---面向切面

今天看工作看代码突然有了以下设想: /** * Created by zq on 2017/5/25. * 抽象类 */ public abstract class AbstractC { public void C(){ D(); System.out.println("C_1"); E(); } public abstract void D(); // { // System.out.println("C_1"); // } public abstract vo

C#中的抽象类和抽象方法

一.抽象类和抽象方法的概念 在基类中的虚方法有时候不可能被调用到,而只是表达一种抽象的概念,用以为它的派生类提供一个公共的界面. C#中引入了抽象类(abstract class)的概念,可以将它定义成抽象方法.将该方法所在的类定义成抽象类. 抽象方法:只包含方法定义,但没有具体实现的方法,需要其子类或者子类的子类来具体实现. 抽象类:抽象类是能够包含抽象成员的类.抽象类只能作为基类使用,不能被实例化. 二.抽象类和抽象方法的使用原则 1  抽象类中可以存在非抽象方法,抽象方法必须包含在抽象类中

C#抽象类和抽象方法

如果一个类不与具体的事物相联系,而只是表达一种抽象的概念,仅仅是作为其派生类的一个基类,这样的类就是抽象类,在抽象类中声明方法时,如果加上abstract时就是抽象方法 抽象类概述及声明 抽象类与非抽象类的主要区别: ①.抽象类不能直接被实例化 ②.抽象类中可以只有抽象方法,也可以只有非抽象方法,也可以抽象方法.非抽象方法都有.(非抽象     类中不能有抽象方法). ③.抽象类不能被密封 以上会在下面例子中一一验证: class Program { static void Main(strin

第二章 C#继承&继承类型&虚函数&抽象类&抽象函数&抽象方法&隐藏方法

继承:实现继承,接口继承. C#不支持多实现继承,支持多接口继承 public class Class4:Class3,IInterface1,IInterface2 { } 虚方法:virtual 基类中声明virtual方法,在派生类中可以重写,并且调用的时候总是调用重写的方法. public class Class1 { public virtual void A() { Console.WriteLine("Class1.A"); } public void B() { Con

java抽象类和抽象方法之间的关系

抽象类和抽象方法之间的关系有抽象方法的类,一定是抽象类:抽象类不一定有抽象方法当子类继承抽象类时,必须要将抽象类中的抽象方法全部实现(或者称为重写),否则子类依然是抽象类因为子类是继承父类全部内容,所以也就相当于子类中也有了抽象方法,通过重写,可以将抽象方法覆盖. 抽象类的特点:必须有abstract关键字修饰,不可以通过new来创建对象,抽象方法不可以写函数体(非抽象方法必须写函数体) 关键字小总结:不想让别的类重写的方法,用final:内容不确定的方法,用abstract(子类中用法不一样)

2.匿名类,匿名类对象,private/protected/public关键字、abstract抽象类,抽象方法、final关键字的使用,多线程Thread类start方法原理

package com.bawei.multithread; //注意:模板方法我们通常使用抽象类或者抽象方法!这里我们为了方便在本类中使用就没有使用抽象类/抽象方法 public class TemplateThread { //如果这个方法不想被子类或者别人随意改动[这样子类就不能覆写该方法了],这里方法就要设置为final方法 public final void println(String message){ System.out.println("###################

java中的抽象类和抽象方法

abstract修饰抽象类和抽象方法. 包含抽象方法的类只能定义成抽象类,但是抽象类中可以没有抽象方法. 抽象方法没有方法体.只能由子类提供实现(重写). 抽象类只能被继承,final修饰的类不能被继承,所以abstract和final不能共存. 抽象方法如下所示: public abstract class Sharp//抽象类 { private String color; public abstract String getType();//抽象方法 public abstract dou