#include "stdafx.h
#include <iostream>
using namespace std;
//抽象
class Shape
{
public:
virtual double Area() const(return 0;);//子类实现不一致,加virtual
void Display()
{
cout<<Area()<<endl;
}
}
class Square:public Shape
{
public:
Square(int len):_len(len){}
double Area() const
{
return len*len;
}
private:
double _len;
}
class Circle:public Shape
{
public:
Circle(couble radius):_radius(radius){};
double Area() const
{
return 3.1415926*_radius*radius;
}
private:
double _radius;
}
面向对象三大特性
封装性
数据和代码捆绑在一起,避免外界干扰和不确定性访问
继承性
让某种类型对象获得另一个类型对象的属性和方法,继承可以扩展已存在的代码
多态性
同一事物表现出不同事物的能力,即向不同对象会产生不同的行为,多态的目的则是为了接口重用
面向对象
- 面向对象是软件工程发展到一定阶段为了管理代码和数据提出的一种方法,它没有解决以前解决不了的问题,不是万能的
- 面向对象不是对现实世界的映射.但
它的封闭性可以把问题简化,便于抽象
它的继承可以减少代码重复,避免重新发明轮子
它的多态可以实现 灵活的功能扩充,提升开发效率 - 面向对象为我们余热的开发出能适应变化的软件提供了可能,但还不够