C#语法基础19_面向对象编程_继承性(与多态初识)
C#语法基础19_面向对象编程_继承性(与多态初识)
封装性链接如下:
C#语法基础17_面向对象编程_封装性 - 摸鱼time - 博客园 (cnblogs.com)
类的继承
C#为单继承
子类(sub-class)继承父类(parent-class)
private修饰的变量不可被子类继承
protected修饰的变量只能在本类和子类中被访问
// 密封类不能被继承
public sealed class Pen {
}
// 承语语法
public class B : A { // B extends A
C#所有类继承是object类
object类有四个方法
Equals
GetHashCode
GetType
ToString
抽象类
public abstract class Employee {
}
虚拟方法(可能将在子类被重写的方法)
public virtual double GetArea() {
return double.MinValue;
}
抽象方法(必须在子类被重写的方法)
public abstract double GetArea() {
return double.MinValue;
}
抽象类private属性的继承
// 抽象基类(员工)
public abstract class Employee {
private string name;
private int employeeNumber;
private double payrate;
public Employee(string name, int num, double rate) {
this.name = name;
employeeNumber = num;
payrate = rate;
}
// 子类(全职员工)
public class FullTime : Employee {
const double WEEKS_PER_YEAR = 52.0;
public FullTime (string name, int num, double rate)
: base(name, num, rate){ // : base(name, num, rate)调用基类的构造方法
}
}
调用父类方法
base.父类方法()
重写和重载
// 重写和重载
public override string ToString() {
return face.ToString();
}
uml关系(有横向与纵向关系)
纵向关系有:依赖 < 关联 < 聚合 < 组合
依赖:人与空气,空气作为一种工具与人没有直接关系
关联:人与其朋友,可随时取消的关系
聚合:家庭中的妻子和丈夫,更为强烈的关联关系。
组合:人的器官,部分属于整体,整体不存在,部分一定不存在
uml的is-a关系与has-a关系
is-a关系,继承相关
如菱形、圆形和方形都是形状的一种
has-a关系,聚合相关
比如电脑是由显示器、CPU、硬盘等组成
多态初识
方法的重写与重载体现了多态,一个方法存在多种实现形式,以使得它被不同的对象调用时这个方法都是合适的。
moyutime:本文仅是学习心得,观点仅供参考,祝愿读者学习途中快乐且不断有所收获。