面向对象方法的特性:(抽象,封装,继承,多态性)
来源:互联网 发布:娱乐栏目名称有趣 知乎 编辑:程序博客网 时间:2024/05/16 23:02
面向对象方法的特性:
(1)现实建模(抽象):
抽象提取一个类的共性(仅抽取相关的信息)
(2)轻松更改(封装):大多以类作为数据封装的基本单位
封装隐藏实现细节,对外只提供访问接口(保护隐私)
可以通过访问修饰符(Access Specifier,也叫访问区分符)定义类成员的可见范围,从而实现封装
eg:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 例8_14类的封装
{
class Program
{
static void Main(string[] args)
{
Computer mingri = new Computer();
again:
Console.WriteLine("请输入操作指令:");
string str = Console.ReadLine();
mingri.Open(str);
Console.WriteLine("是否继续操作?");
string isoperate = Console.ReadLine();
if (isoperate == "true")
goto again;
Console.ReadLine();
}
}
class Computer
{
public void Open(string str)
{
if (str == "启动")
{
string p;
while (true)
{
Console.WriteLine("请输入Power!");
p = Console.ReadLine();
if (p == "Power")
{
Console.WriteLine("电脑已启动!");
break;
}
else
{
Console.WriteLine("错误的指令,无法开启电脑,请重新输入!");
}
}
}
else
{
Console.WriteLine("正在关闭电脑,请稍后!");
}
}
}
}
修饰符说明
public本类以及其他类都可以访问,本类对象以及其他类对象都可以访问
private只有本类自己才能访问,即使该类的对象也不能访问
protected只有本类及其子类可以访问,即使本类和子类的对象也不能访问
internal 当前程序集(通常表现为一个.exe或.dll文件)中的类都可以访问
protected internal当前程序集中的类,以及从当前程序集中派生的其他程序集子类
(3)可重用性(继承):
eg:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 例8_15类的继承
{
class Program
{
static void Main(string[] args)
{
Fruit fruit = new Fruit("水果");
Apple apple = new Apple("苹果");
fruit.Color = "无";
apple.Color = "绿色";
fruit.Information();
apple.Information();
Console.ReadLine();
}
}
class Fruit
{
string name;
string color;
public Fruit(string str)
{
name = str;
}
public string Color
{
set { color = value; }
}
public void Information()
{
Console.WriteLine("{0} 颜色:{1}",name,color);
}
}
class Apple : Fruit
{
string name;
//string color;
public Apple(string str) //定义构造函数为name字段赋值
: base(str)
{
name = str;
}
}
}
(4)以不同的形式存在(多态性):
eg:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 例8_16.类的多态
{
class Program
{
static void Main(string[] args)
{
Vehicle vehicle = new Vehicle();
Train train = new Train();
Car car = new Car();
vehicle.Name = "交通工具";
train.Name = "火车";
car.Name = "汽车";
vehicle.Move();
train.Move();
car.Move();
Console.ReadLine();
}
}
class Vehicle
{
string name;
public string Name
{
get { return name; }
set { name = value; }
}
public virtual void Move()
{
Console.WriteLine("{0}都可以移动",this.Name);
}
}
class Train : Vehicle
{
public override void Move()
{
Console.WriteLine("{0}在铁轨上行驶",this.Name);
}
}
class Car : Vehicle
{
public override void Move()
{
Console.WriteLine("{0}在公路上行驶",this.Name);
}
}
}
- 面向对象方法的特性:(抽象,封装,继承,多态性)
- 黑马程序员-----面向对象的特性封装、继承、多态、抽象
- java面向对象的四大特性-多态,继承,抽象,封装
- java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍
- java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍
- java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍
- 演示java面向对象的核心特性(类的封装性,继承性和多态性)
- 面向对象特性,包括继承、封装、多态、抽象、访问控制
- 面向对象的特点,封装性,继承性,多态性!
- Java--面向对象的特性(封装,继承,多态)学习
- 面向对象——封装、继承、多态性
- 面向对象的继承、封装、多态、抽象、接口相关
- 面向对象的4要素:抽象,封装,继承,多态
- C++面向对象的抽象 封装继承 多态总结
- 面向对象的三的特性:封装 继承 多态
- Java面向对象的基本概念(对象、封装、继承、多态、抽象、接口、泛型)
- 面向对象(重载、封装、继承、抽象)
- Java面向对象、抽象、封装、继承、多态
- 类和对象
- 卓越的教练是如何训练高手的?
- SUSAN算法的matlab代码
- BZOJ 3675: [Apio2014]序列分割
- 黑马程序员:iOS基础——个人笔记(九)
- 面向对象方法的特性:(抽象,封装,继承,多态性)
- 实现(简单 和中等) 难度通讯录 操作 - 猎人猫
- csdn添加图片和微博链接
- 方法重载:多个函数名相同但数据类型或形参个数不同的形式
- 横向错切的matlab代码
- [JSP]JSP内置对象(4)
- Android 编程下 Touch 事件的分发和消费机制
- 青蛙过河的问题
- 一些简单的编译命令