C# 抽象(3)
接上章:
抽象类中有抽象方法,那么可不可以有非抽象方法呢?
答案是可以的。
abstract class Human
{ public abstract void Think(); public abstract int Age { get; set; } public void ShowType(Human human) => Console.WriteLine($"这个{human.GetType().FullName}"); }
class Iam : Human
{
public override int Age { get ; set ; } public override void Think() => Console.WriteLine("这个实现的父抽象类的方法"); }
class Program
{
static void Main(string[] args)
{ var iam = new Iam(); iam.ShowType(iam); Console.ReadKey();
}
抽象类中实现非抽象方法的意义是什么?
都说了抽象类是一个抽象的,包括方法啊 属性啊,你给我一个非抽象的方法,哪抽象类的意义是啥啊?
还是重人这个抽象说起,说到人,你能想到人肯定能干什么,比如使用呼吸。
某些东西,这个抽象类不需要子类继承就可以实现,所以就需要非抽象方法的存在。
C# 抽象(3)的更多相关文章
- 设计模式C#合集--抽象工厂模式
抽象工厂,名字就告诉你是抽象的了.上代码. public interface BMW { public void Drive(); } public class BMW730 : BMW { publ ...
- PHP设计模式(三)抽象工厂模式(Abstract Factory For PHP)
一.什么是抽象工厂模式 抽象工厂模式的用意为:给客户端提供一个接口,可以创建多个产品族中的产品对象 ,而且使用抽象工厂模式还要满足以下条件: 系统中有多个产品族,而系统一次只可能消费其中一族产品. 同 ...
- 编译器开发系列--Ocelot语言1.抽象语法树
从今天开始研究开发自己的编程语言Ocelot,从<自制编译器>出发,然后再自己不断完善功能并优化. 编译器前端简单,就不深入研究了,直接用现成的一款工具叫JavaCC,它可以生成抽象语法树 ...
- 设计模式之工厂模式VS抽象工厂
一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类:1)简单工厂模式(Simple Factor ...
- CacheManager:–个通用缓存接口抽象类库
CacheManager是–个缓存通用接口抽象类库,它支持各种高速缓存提供者,例如Memcache,Redis,并且有许多先进的功能特性.具体可以访问官方网站 http://cachemanager ...
- 从EF的使用中探讨业务模型能否脱离单一存储层完全抽象存在
上次赶时间,就很流水账地写了上次项目对EF的一次实践应用模式,因为太长了,也没能探讨太多,所以再继续扩展. 这次想探讨的是,实体,如果作为类似于领域模型的业务模型存在,它的数据能否来自不同的数据源.这 ...
- 列表组件抽象(2)-listViewBase说明
这是我写的关于列表组件的第2篇博客.前面的相关文章有: 1. 列表组件抽象(1)-概述 listViewBase是列表组件所有文件中最核心的一个,它抽象了所有列表的公共逻辑,将来如果有必要添加其它公共 ...
- java抽象、接口 和final
抽象 一.抽象类:不知道是具体什么东西的类. abstract class 类名 1.抽象类不能直接new出来. 2.抽象类可以没有抽象方法. public abstract class USB { ...
- 面向对象设计模式纵横谈:Abstract Factory 抽象工厂模式(笔记记录)
今天是设计模式的第二讲,抽象工厂的设计模式,我们还是延续老办法,一步一步的.演变的来讲,先来看看一个对象创建的问题. 1.如何创建一个对象 常规的对象创建方法: 这样的创建对象没有任何问题, ...
- Java学习笔记-抽象
开发软件的关键在于应用抽象的概念.方法抽象是通过将方法的使用和它的实现分离来实现的.方法的实现对用户隐藏在"黑匣子"中. 当编写一个大程序时,可以使用分治的策略,也成为逐步求精,将 ...
随机推荐
- win7重新安装后删除文件权限不够(小技巧)
选择文件,安全,编辑,如果用户权限可以编辑,那么赋予提示的用户权限. 如果此时用户不可编辑,那先把所属用户换了,安全,高级,所有者,更换所有者之后,权限就可以编辑了.
- 爬了个爬(三)Scrapy框架
参考博客:武Sir Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 ...
- python's ninteenth day for me 类的组合,继承。
组合: 表示一个类的对象作为另一个类对象的属性. 实例化的过程: 1,创建一个对象. 2,__init__ 给对象添加一些属性,对象默认的名字为self. 3,将self所指向的内存空间返回给实例化他 ...
- 配置VMware中的Ubuntu能够被其他机器ssh远程
配置虚拟机Ubuntu能够被其他机器 ssh远程 将虚拟机Ubuntu改成桥接模式 在Ubuntu中安装openssh sudo apt install openssh-server -y sudo ...
- java成神之——MySQL Connector/J 的基本使用
使用示例 DBCP连接池 结语 使用示例 public class demo { static Connection con = null; static Statement st = null; s ...
- Setting up logs in NetBackup
For a given issue, it may be necessary to gather multiple logs. This MUST cover the time the issue ...
- Halcon学习之二:摄像头获取图像和相关参数
1.close_all_framegrabbers ( : : : ) 关闭所有图像采集设备. 2.close_framegrabber ( : : AcqHandle : ) 关闭Handle为Ac ...
- Hadoop Serialization(third edition)hadoop序列化详解(最新版) (1)
初学java的人肯定对java序列化记忆犹新.最开始很多人并不会一下子理解序列化的意义所在.这样子是因为很多人还是对java最底层的特性不是特别理解,当你经验丰富,对java理解更加深刻之后,你就会发 ...
- 各大IT/IC公司offer比较
1:本人西电通院2013届毕业硕士,根据今年找工作的情况以及身边同学的汇总,总结各大公司的待遇如下,吐血奉献给各位学弟学妹,公司比较全,你想去的公司不在这里面,基本上是无名小公司了:但无名小公司有时也 ...
- Java多线程-线程的交互
一.线程交互的基础知识void notify():唤醒在此对象监视器上等待的单个线程. void notifyAll():唤醒在此对象监视器上等待的所有线程. void wait():导致当前的线程等 ...