会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
hbfly's space
SDET-变化的不是需求,而是你对需求的理解
博客园
首页
新随笔
联系
订阅
管理
学习OO思想
没抓住主线,请指教。
Code
using
System;
namespace
Study
{
public
class
Test
{
static
void
Main(
string
[] args)
{
Son_Class Son
=
new
Son_Class();
Son.CommonMethod();
((Father_Class)Son).CommonMethod();
//
方法二:类型转换
Console.Read();
}
}
abstract
class
Father_Class
//
抽象类才能有抽象方法;不能实例化
{
public
Father_Class(
string
parameter)
{ Console.WriteLine(parameter); }
//
构造函数
public
virtual
void
virtualMethod()
{ Console.WriteLine(
"
Father_Class.virtualMethod
"
); }
public
abstract
void
abstractMethod();
public
void
CommonMethod()
{ Console.WriteLine(
"
Father_Class.CommonMethod
"
); }
}
class
Son_Class : Father_Class
{
public
Son_Class() :
base
(
"
子类给基类通信的方法:用base调用基类的构造函数
"
)
{ }
public
sealed
override
void
virtualMethod()
{ Console.WriteLine(
"
Son_Class.virtualMethod ; sealed override方法已经不能在孙类override
"
); }
public
override
void
abstractMethod()
{ Console.WriteLine(
"
Son_Class.abstractMethod
"
); }
public
new
void
CommonMethod()
{
Console.WriteLine(
"
Son_Class.CommonMethod
"
);
base
.CommonMethod();
//
方法一
}
}
}
/**/
/*
继承:实现功能扩展和复用
* virtual可以自己实现,也可以由子类override;abstract只能由子类override;用new可以任意重写一个父类的同名方法(不用new只会警告)
* sealed类可以防止被继承;子类中sealed override的方法可以防止被孙类override
* 子类给基类通信的方法:用base调用基类的构造函数
* 子类中访问基类被override成员的方法:
封装:
多态:
* 编译时多态:重载;运行时多态的实现:接口、继承、抽象类
易混概念:
* 接口用于定义类的能力(多用able结尾);抽象类是能提供部分实现的接口,多用于定义属性,如版本控制;C#的派生类只能从一个类中继承,只能通过接口实现多重继承
* static = share,用类访问并被类的所有实例共享,避免冗余,如sqlconstr
*/
posted on
2008-12-02 15:01
hbfly
阅读(
346
) 评论(
2
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部