抽象与密封示例
来源:互联网 发布:全网通手机淘宝 编辑:程序博客网 时间:2024/04/29 18:34
使用abstract申明抽象类,抽象类不能被实例化;
使用sealed关键字申明密封类,不可从此类派生其他的类;
下面以计算各类图形的面积为例:
这是计算圆的类(是一个密封的类):
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Shape{ public sealed class Circle:shape { private double radium; public Circle (double r) { radium = r; } public override double calculateArea() { return Math.PI * radium * radium; } }}
矩形的类(密封):
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Shape{ public sealed class Rectangle:shape { private double length, width; public Rectangle (double l,double w) { length = l; width = 1; } public override double calculateArea() { return length * width; } }}
三角形的类(密封):
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Shape{ public sealed class Triangle:shape { private double edge, high; public Triangle(double e, double h) { edge = e; high = h; } public override double calculateArea() { return edge * high / 2; } }}
基类(抽象的):
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Shape{ public abstract class shape { public abstract double calculateArea(); }}
主函数(调用这些类):
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Shape{ class Program { static void Main(string[] args) { shape s; s = new Triangle(12.0,5.6); printArea(s); s = new Rectangle(10.0, 8.1); printArea(s); s = new Circle(3.9); printArea(s); Console.ReadLine(); } static void printArea(shape s) { Console.WriteLine("这个图形是" + s.GetType().ToString()); Console.WriteLine("图形面积是" + s.calculateArea().ToString()); } }}
2 0
- 抽象与密封示例
- 抽象与密封
- 抽象类与密封方法
- 抽象类和密封类
- 抽象类和密封类
- C# 抽象类、密封类
- 黑马程序员_学习日记24_面向对象技术高级应用(接口、抽象类与抽象方法、密封类与密封方法)
- .NET抽象类与抽象方法示例
- C#:抽象类PK密封类
- Kotlin Reference (九) 抽象类、密封类
- 密封
- C#:抽象类和抽象函数, 密封类和密封方法
- C#入门10.6——密封类与密封方法
- C# 抽象类、密封类及类成员
- C# 抽象类、密封类及类成员
- 委托 事件 密封类 静态类 抽象类 接口
- 基础_C# 继承,抽象类,密封类,类的多态性
- C#中的虚类、密封类、抽象类
- [编程题]骰子翻转
- vue.js v-if和v-for那些事(小例子提一提props)
- 浅谈Android模块化设计(路由框架ARouter源码分析)
- 406. Queue Reconstruction by Height
- first blog调用activity中fragment的方法
- 抽象与密封示例
- 用Java处理JSON 二
- 浅谈Android模块化设计(模块化的一些思考)
- 在O(1)时间复杂度删除链表节点
- picasso-强大的Android图片下载缓存库
- 删除链表中的元素
- hiho 1487 并查集+搜索 [Offer收割]编程练习赛11 problem C 岛屿3
- 第二章图像处理
- [编程题] 简单错误记录