欢迎大家光临我的博客!
首先今天主要学习了以下几个方面的知识:↓
面向对象技术的三个核心概念:封装、继承、多态!
接下来今天主要介绍前两个。
一、封装
(1)封装:将数据和操作组合到一起,并决定哪些数据和操作对外是可见的。
(2)封装的作用:
①隐藏类的实现细节:使用方法将类的数据隐藏起来。
②迫使用户去使用一个界面去访问数据:定义程序如何引用对象的数据,控制用户对类的修改和访问数据的程度。
③使代码更好维护:类的内部实现改变,对外接口可以不变。
(3)封装的实现:
①用方法来实现封装:
例如:
public class Department
{
private string departname;
// 读方法
public string GetDepartname()
{
return departname;
}
//写方法
public void SetDepartname( string departname)
{
this.departname=departname;
}
}
②用属性来实现封装:用属性来实现封装会更方便。
例如:
class Java
{
private string name;
private int weight;
public string Name
{
set
{
name = value;
}
get
{
return name;
}
}
public int Weight
{
set
{
weight = value;
}
get
{
return weight;
}
}
static void Main(string[] args)
{
Java s = new Java();
s.Name = "小刚";
string name = s.Name;
s.Weight = 60;
int weight = s.Weight;
Console.WriteLine(name+"的体重为:"+weight+"公斤");
Console.ReadKey();
}
}
二、继承
(1)继承的作用:
继承提供了创建新类的一种方法,继承对开发者来说就是代码共享。
①通过继承创建的子类是作为另一个类的扩充或修正所定义的一个类。
②子类从超类(父类)中继承所有方法和变量。
③子类和超类之间是特化与范化的关系。
(2)子类的声明语法:
子类声明:父类
{
子类体
}
①子类可以使用父类的protected和public可见的变量和方法
②私有成员和方法其实已经被继承了,但是它们却不可以被访问
③C# 中,如果类声明时没有声明父类,那么缺省为Object 类的子类,C#中的所有类都是System.Object类的子类。
④C#中,子类只能继承一个父类,但一个基类可以有多个直接派生类,继承是可以传递的。
(3)sealed修饰符
作用:sealed 修饰符会阻止其他类从该类继承。
例如:
sealed class A
{
int test;
public void Sum(int i,int j)
{
int sum = i + j;
Console.WriteLine("I am A ,my sum ={0}",sum);
}
}
class B : A
{
public void Minus(int i,int j)
{
int minus = i - j;
Console.WriteLine("I am B ,my minus ={0}", minus);
this.Sum(3, 4); //这时编译器会报错
}
}
(4)派生类
派生类的建立需要注意:
①派生类会继承基类除了构造函数和析构函数的所有成员。
②派生类调用构造函数时,会先调用基类的构造函数。默认调用没有参数的构造函数。
③用base关键字显式调用基类构造函数(如果基类定义了带有参数的构造函数,那么此构造函数必须被执行,且在派生类中实现该构造函数,此时我们可以使用base关键字)
(5)方法隐藏
当子类方法的方法名和基类的方法名相同时,系统将隐藏基类同名方法,自动调用子类的同名方法。