抽象类,抽象方法

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

namespace Test
{
    //抽象类不能是密封的或静态的

    //不能初始化的类被叫做抽象类。抽象类只能被继承。不能被实例化。抽象类中可以包含非抽象方法。这个方法可以由该抽象类的子类对象来调用。
    abstract class A //A是一个抽象类
    {
        public abstract void Method(); //抽象类可以包含抽象方法。

        public void Sum(int a, int b) //抽象类可以包含非抽象的方法。
        {
            Console.WriteLine(a + b);

            Console.WriteLine("我的名字叫{0},今年{1}岁",Name,Age);
        }

        public abstract string Name { get; set; } //抽象类可以包含抽象属性

        public int Age { get; set; } //抽象类可以包含非抽象的属性
    }
    class B :A
    {
        public override void Method()  //实现“抽象父类”的抽象方法。注意:实现的时候需要加override关键字
        {
            Console.WriteLine("实现父类的抽象方法");
        }

        public override string Name //实现“抽象父类”的抽象属性
        {
            get;
            set;
        }
    }
    /*
    class C
    {
        //含有抽象方法的类一定是抽象类,也一定要加abstract类修饰符,而这里的C类并不是抽象类。所以下面定义的抽象方法报错

        public abstract string Myabstarct(); //错误	1	“Test.C.Myabstarct()”是抽象的,但它包含在非抽象类“Test.C”中	

    }

     */
    class InheritanceTest1
    {
        static void Main(string[] args)
        {
           // A a = new A(); //错误 ,抽象类不能被实例化

            B b = new B();

            b.Name = "燕子李三";
            b.Age = 25;

            b.Sum(5, 6); //抽象类的非抽象方法只能被子类的对象来调用。

            Console.ReadKey();
        }
    }
}

时间: 2024-10-10 14:19:00

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

Java抽象类抽象方法

1.为什么需要抽象类?如何定义抽象类? *是一种模板模式.抽象类为所有子类提供了一个通用模板,子类可以在这个模板基础上进行扩展. *通过抽象类,可以避免子类设计的随意性.通过抽象类,我们可以做到严格限制子类的设计,使子类之间更加通用. 2.要点: 有抽象方法的类只能定义为抽象类. 抽象类不能实例化,及不能用new来实例化抽象类. 抽象类可以包含属性,方法,构造方法.但是构造方法不能用来new实例,只能用来被子类调用. 抽象类只能用来继承. 抽象方法必须被子类实现,同时也可以用抽象子类继承抽象父类

python抽象类+抽象方法实现接口(interface)

#python没有类似于java和C#的接口类(interface),需要使用抽象类 和抽象方法来实现接口功能 #!/usr/bin/env python#_*_ coding:utf-8 _*_ from abc import ABCMetafrom abc import abstractmethod class Alert: __metaclass__= ABCMeta @abstractmethod def send(self): pass #继承抽象类class Weixin(Alert

Java抽象类/抽象方法

java抽象类的特点: *抽象类无法被实例化 *子类继承抽象类然后实例化子类 *子类继承了抽象类剋必须实现抽象类的中的抽象方法 *抽象类的定义 abstract class *** *抽象方法的定义:public abstract void ***():ps:抽象方法不能有方法体 --------------------------------------------------------------------------- 下面我们来代码实现下: 先创建一个.java文件 然后我们定义个抽

抽象类 抽象方法 接口 类部类 匿名类部类 设计模式之单例模式(懒汉模式及饿汉模式)

---恢复内容开始--- 抽象类  关键字  abstract 不能被实例化(创建对象),可通过类名调用静态方法 子类继承抽象类必须重写父类的所有抽象方法,然后用多态调用 接口:关键字 interface   类名 implements 接口名 1.接口中只能有抽象方法,并且不能被实例化,通过多态调用 2.接口与接口之间的关系: 继承关系(可以多继承); 类部类: 在类中定义的类 创建类部类对象    外部类名.内部类名  对象名 = new 外部类名().new内部类名() 匿名类部类: 在写

抽象类抽象方法

抽象方法:使用abstract修饰的方法,没有方法体,只有声明. 抽象类:包含抽象方法的类就是抽象类.通过抽象类,我们可以做到严格限制子类的设计,使子类之间更加通用 使用要点:1.有抽象方法的类职能定义为抽象类 2.抽象类不能实例化,不能用new来实例化抽象类 3.抽象类可以包含属性.方法.构造方法.但是构造方法不能用来new实例,只能用来被子类调用 4.抽象类只能被继承 5.抽象方法必须被子类实现 接口是比“抽象类”还抽象的抽象类,可以更加规范的对子类进行约束.接口不提供任何实现,接口中所有的

Java 抽象类 抽象方法 接口

#抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量.成员方法和构造方法的访问方式和普通类一样. 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用.也是因为这个原因,通常在设计阶段决定要不要设计抽象类. 父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法. 在Java中抽象

Java 面向对象编程 抽象类 抽象方法 abstract

抽象类 通过abstract定义的方法是抽象方法,它只有定义,没有实现.抽象方法定义了子类必须实现的接口规范: 定义了抽象方法的class必须被定义为抽象类,从抽象类继承的子类必须实现抽象方法: 如果不实现抽象方法,则该子类仍是一个抽象类: 面向抽象编程使得调用者只关心抽象方法的定义,不关心子类的具体实现. 如果父类的方法本身不需要实现任何功能 ,仅仅是为了定义方法签名,目的是让子类去覆写它,那么,可以把父类的方法声明为抽象方法.声明关键词abstract abstract class Pers

python 抽象类、抽象方法、接口、依赖注入、SOLIP

1.程序设计原则:SOLIP SOLIP设计原则 1.单一责任原则(SRP) 一个对象对只应该为一个元素负责 2.开放封闭原则(OCP) 对扩展开放,修改封闭 3.里氏替换原则(LSP) 可以使用任何派生类替换基类 4.接口分离原则(ISP) 对于接口进行分类避免一个接口的方法过多 5.依赖倒置原则(DIP) 隔离关系,使用接口或抽象类代指 6.依赖注入(DI)和控制反转原则(ICO) 使用钩子再原来执行流程中注入其他对象 接口: # ==============================

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("###################

抽象类和抽象方法 abstract类和abstract方法

可以使用abstract来修饰一个类或者方法. 用abstract修饰的类表示这个类是一个抽象类,用abstract修饰的方法表示这个方法是一个抽象方法. 抽象类不能被实例化. 抽象方法是只有方法声明,而没有方法的实现内容. 一个类中,只要有一个抽象方法,这个类必须被声明为抽象类抽象方法在非抽象子类中必须被重写.重写了这两个方法,虽然方法体里面 {} 的内容是空的,也算重写了这个方法.注意看重写方法的参数名称,这里只要参数数量一致就可以,不要求参数的名称必须一致. 一个类中,只要有一个抽象方法,