多态:

/*
     * 多态:多种形态的意思,重载也是多态的一种,今天讲解的多态的另一种形式,重写
     * 重写有两个关键字,virtual(虚拟的) 和 override(覆盖)
     * 重写:就是在子类中对父类的方法进行修改或者说在子类中对它进行重新编写
     * 使用方法:
     * 1.virtual关键字用于将父类的方法定义为虚方法
     * 2.在子类中使用override关键字重写父类的虚方法
     */

using System;namespace ConsoleApp1
{/** 多态:多种形态的意思,重载也是多态的一种,今天讲解的多态的另一种形式,重写* 重写有两个关键字,virtual(虚拟的) 和 override(覆盖)* 重写:就是在子类中对父类的方法进行修改或者说在子类中对它进行重新编写* 使用方法:* 1.virtual关键字用于将父类的方法定义为虚方法* 2.在子类中使用override关键字重写父类的虚方法*/class Person{public int age; public string name;public virtual void Speak(){Console.WriteLine("你好,我是{0},还是学生,我要好好学习,天天向上", this.name);}}class Student : Person{}class Teacher : Person{public override void Speak(){Console.WriteLine("你好,我是{0},还是老师,我要好好学习,天天向上", this.name);}}class Program{static void Main(string[] args){Student s = new Student();s.name = "屈增辉";s.Speak();Teacher t = new Teacher();t.name = "付亚东";t.Speak();Console.ReadKey();}}
}

继承:

/*
     * 我们可能会在一些类中,写一些重复的成员,我们可以将这些重复的成员单独封装到一个类中
     * 作为这些类的父类
     * 一.继承的语法:
     * 只需要吧父类的类名写在类名的后面,加上“:”号即可
     * class 类名:父类{
     * 
     * 
     * }
     * 
     * 二.一旦继承了某个类,那么就会拥有那个类的特征(成员变量)和行为(成员方法)
     * 被继承的类称之为父类或者基类,继承了其他类的类叫做子类或者派生类
     * 
     * 总结:
     * 1.继承单根性:一个类只能有一个父类,单继承
     * 2.继承的传递性:A类被B类继承,B类被C类继承,那么C类就拥有A类和B类的所有成员变量和方法
     * 
     * 三.继承中的构造方法
     * 构造方法不能被继承,但子类会自动调用父类的构造方法,以帮助子类初始化成员变量
     * 
     * 四.通过使用base关键字,派生类的构造方法可以显式调用基类的构造方法,运行是,首先执行的是基类的构造方法,
     * 然后执行子类的构造方法
     * 
     * 五.使用base来访问父类的成员
     * this:代表当前类的对象
     * base:就是在子类中调用父类的成员时使用
     * 
     * 六.protected访问修饰符。保护的意思,如果使用protected修饰的成员允许被子类访问,其他类不能访问
     * 
     * 七:Object类:
     * 在.net中所有的类都派生自一个名了Object的类,如果类定义时,没有指定父类,那么编译是,编译器会自动设定这个类直接派生自object类
     * 
     * 八:密封类
     * 定义密封类需要使用sealed关键字
     * 语法:sealed class 类名{}
     * 不允许继承这个类的时候,就可以写为密封类
     * 
     */

using System;namespace ConsoleApp1
{/** 我们可能会在一些类中,写一些重复的成员,我们可以将这些重复的成员单独封装到一个类中* 作为这些类的父类* 一.继承的语法:* 只需要吧父类的类名写在类名的后面,加上“:”号即可* class 类名:父类{* * * }* * 二.一旦继承了某个类,那么就会拥有那个类的特征(成员变量)和行为(成员方法)* 被继承的类称之为父类或者基类,继承了其他类的类叫做子类或者派生类* * 总结:* 1.继承单根性:一个类只能有一个父类,单继承* 2.继承的传递性:A类被B类继承,B类被C类继承,那么C类就拥有A类和B类的所有成员变量和方法* * 三.继承中的构造方法* 构造方法不能被继承,但子类会自动调用父类的构造方法,以帮助子类初始化成员变量* * 四.通过使用base关键字,派生类的构造方法可以显式调用基类的构造方法,运行是,首先执行的是基类的构造方法,* 然后执行子类的构造方法* * 五.使用base来访问父类的成员* this:代表当前类的对象* base:就是在子类中调用父类的成员时使用* * 六.protected访问修饰符。保护的意思,如果使用protected修饰的成员允许被子类访问,其他类不能访问* * 七:Object类:* 在.net中所有的类都派生自一个名了Object的类,如果类定义时,没有指定父类,那么编译是,编译器会自动设定这个类直接派生自object类* * 八:密封类* 定义密封类需要使用sealed关键字* 语法:sealed class 类名{}* 不允许继承这个类的时候,就可以写为密封类* */class Person{public Person(){Console.WriteLine("我是父类的无参数的构造方法");}public Person(string Name,int Age){ this.name = Name;this.age = Age;Console.WriteLine("我是父类的有参数的构造方法");}public int age;public string name;public void Speak(){Console.WriteLine("你好,我是{0}", name);}}//继承自Person类class Student:Person{public Student(){Console.WriteLine("我是子类的无参数的构造方法");}public Student(string Name, int Age, int StuId) : base(Name,Age){this.stuID = StuId;Console.WriteLine("我是一个有参数的子类构造方法");}public int stuID;public void Study(){base.Speak();Console.WriteLine("我是一个好学习的学生,我不瞌睡,我爱写代码,我一写代码,我就精神了");}}//写一个密封类sealed class Circle{public int radius;//半径public double GetInfo(){return 2 * Math.PI * radius;}}class Program{static void Main(string[] args){Student s = new Student();s.name = "屈增辉";s.age = 20;s.stuID = 1002;s.Study();s.Speak();Console.WriteLine("---------------------------");Student s2 = new Student("何帅", 19, 1002);Person p = new Person();Console.ReadKey();}}
}

 继承练习:

using System;namespace ConsoleApp1     //继承练习
{class Program{static void Main(string[] args){Console.ReadKey();}}public class Person{private string name;public string Name{get { return name; }set { name = value; }}private int age;public int Age{get { return age; }set { age = value; }}private char gender;public char Gender{get { return gender; }set { gender = value; }}public void CHLSS(){Console.WriteLine("吃喝拉撒睡");}public Person(string name, int age, char gender){this.Name = name;this.Age = age;this.Gender = gender;}}public class student : Person{public student(string name, int age, char gender, int id):base(name, age, gender){this.Id = id;}private int id;public int Id{get { return id; }set { id = value; }}public void Study(){Console.WriteLine("学生会学习");}}
}

Lession08 继承和多态相关推荐

  1. Go 学习笔记(36)— 基于Go方法的面向对象(封装、继承、多态)

    Go 面向对象编程的三大特性:封装.继承和多态. 封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式 继承:使得子类具有父类的属性和方法或者重新定义.追加属性和方法等 多态:不同对象中同种行为的不 ...

  2. Python中的继承和多态

    本文以生活中的基础现象为切入点,主要介绍了Python基础中继承和多态,包括单继承.多继承的语法.多态常见的 "鸭子类型". 以及如何重写父类的方法都做了详细的讲解. 一.继承的介 ...

  3. python 继承和多态

    python 继承和多态 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Ba ...

  4. java 封装 继承 堕胎_JAVA封装、继承、多态

    封装 1.概念: 将类的某些信息隐藏在类的内部,不允许外部程序访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问. 2.好处: a.只能通过规定的方法访问数据 b.隐藏类的实例细节,方便修改和实 ...

  5. Python面对对象编程——结合面试谈谈封装、继承、多态,相关习题详解

    1.面向对象的三大特征 封装:属性和方法放到类内部,通过对象访问属性或者方法,隐藏功能的实现细节.当然还可以设置访问权限; 继承:子类需要复用父类里面的属性或者方法,当然子类还可以提供自己的属性和方法 ...

  6. Java基础-OOP特性之封装、继承、多态、抽象

    为什么80%的码农都做不了架构师?>>>    //要习惯将程序(功能.代码)模块化 //OOP四大特性:封装.继承.多态.抽象 //OOP的核心:封装一个类,把数据抽象出来,再把方 ...

  7. 第10章 接口、继承与多态----抽象类和接口

    一.抽象类 在解决实际问题时,一般将父类定义为抽象类,需要使用这个父类进行继承与多态处理.回想继承和多态原理,继承树中越是在上方的类越抽象,如:鸽子类继承鸟类.鸟类继承动物类等.在多态机制中,并不需要 ...

  8. Java进阶篇(一)——接口、继承与多态

    前几篇是Java的入门篇,主要是了解一下Java语言的相关知识,从本篇开始是Java的进阶篇,这部分内容可以帮助大家用Java开发一些小型应用程序,或者一些小游戏等等. 本篇的主题是接口.继承与多态, ...

  9. java继承和多态的实验报告_JAVA,继承和多态实验报告

    实验项目名称 : 继承和多态 ( 所属课程 : Java 语言程序设计 ) 院 系: 专业班级: 姓 名: 学号: 实验地点: 指导老师: 本实验项目成绩: 教师签字: 日期: 1.实验目的 (1)掌 ...

最新文章

  1. 敏捷过程、极限编程和SCRUM的关系
  2. centos pureftpd mysql_使用PureFTPd和MySQL的虚拟主机(包括配额和带宽管理)在CentOS 6.2上...
  3. 调焦后焦实现不同距离成像_90%的人都忽视的“最近对焦距离”,其实有大用处...
  4. c99变长数组_你学过数组,那你知道柔性数组吗?
  5. 安徽计算机省一级考试试题,安徽计算机一级考试试题及答案
  6. 净利2.3万的香飘飘,还能做奶茶届的ZARA吗?
  7. VTK:InfoVis之PassThrough
  8. 如何用OpenCV在Python中实现人脸检测
  9. CodeForces - 1287B Hyperset(暴力水题)
  10. python selenium post请求_工作随笔——selenium支持post请求,支持自定义header
  11. Vue第一部分(1):Vue简介以及第一个示例
  12. 剑指offer-JZ54 二叉搜索树的第k个节点(附思路)
  13. 欧几里得算法求最大公约数
  14. Atitit.跨语言数据库db  api兼容性 jdbc odbc ado oledb 增强方案
  15. 18650锂电池保护板接线图_单节18650锂电池保护板的电路原理图
  16. python 创意编程 全国-全国青少年创意编程与智能设计大赛Python创意编程比赛
  17. 【一】微信公众号之扫码登录
  18. Linux下禁用笔记本触摸板
  19. Python - 如何用turtle库画一个微笑表情包
  20. 航班信息显示系统-总结

热门文章

  1. 怎么打开Win10系统的文件夹选项?
  2. Mac设置命令行代理
  3. 苹果机皇称号实至名归,面临淘汰的它,是不是你心中的机皇
  4. Excel技巧:如何用函数删除换行符、文本前空格、文本中间空格?
  5. Maltab GUI课程设计——LSTM长短期记忆网络回归预测
  6. python 清空表格_python 清空表数据库表
  7. 被虐日記----开心并快乐着的求各种虐
  8. ZooKeeper应用——解决分布式系统单点故障
  9. 自媒体新手经常犯,自媒体平台发布作品没收益?分析了这5个原因
  10. 计算机基础2,计算机基础总结2