黑马程序员:面向对象中的继承

原创 2013年12月03日 11:25:33

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

 

继承:
为了解决代码冗余的问题,我们在面向对象中引入了继承这个概念,把几个类中重复出现的成员,单独的拿出来封装到一个类中,将这个类作为其它几个类的父类。
那么其它的几个类就都能够访问到父类中的成员。

比如说让Student这个类继承于Person这个类。
把Student这个类称之为子类或者派生类。
把Person这个类称之为父类或者基类。

 

在前面的笔记中我说了,一个类中有字段,属性,方法,和构造函数。那么当一个子类将继承父类的时候,都可以把那些继承过来呢?

下面是以个题目,通过这个题目来一一解释子类到底字父类中继承了什么。

定义一个父类Person. 写一个Reporter类, Reporter 打招呼的方法是说"大家好,我叫XX,,我的爱好是XXX。其中姓名要继承自Person中的属性

首先定义一个Person类,里面有三个属性,和三个个字段,一个自定义的构造函数

namespace 继承
{
    class Person
    {
        string _name;  //姓名
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }
        int _age;  //年龄
        public int Age
        {
            get { return _age; }
            set { _age = value; }
        }
        char _gender;  //性别
        public char Gender
        {
            get { return _gender; }
            set { _gender = value; }
        }

        public Person(string name,int age,char gender)  //构造函数
        {
            this.Name = name;
            this.Age = age;
            this.Gender = gender;
        }
    }
}

下面是定义的Reporter类:


 

class Reporter:Person  //Reporter继承Person类,
    {
        string _interest;  //兴趣
        public string Interest
        {
            get { return _interest; }
            set { _interest = value; }
        }
        public void Introduce() //打招呼的一个方法
        {
            Console.WriteLine("大家好,我叫{0},我的爱好是{1}",this.Name,this.Interest);
        }

        public Reporter(string name, string interest) 
            : base(name, 0, '\0')   //需要用到base关键字,来调用父类中的构造函数
        {
            this.Name = name;
            this.Interest = interest;
        }
    }


Reporter子类到底都继承了Person这个父类的那些呢?

1:子类没有继承私有字段。

2.子类继承了属性

3.通过base关键字,在子类中显示的调用父类的构造函数。但是子类并不是继承的父类的构造函数,但是子类会默认的去调用父类那个默认的无参数的构造函数,但是当你在父类中有了一个构造函数的时候,

原来那个默认的无参数的就没了了,此时,子类已经调不到你父类,需要你用base显示去调用。

4.子类可以调用父类的方法。

 

继承笔记记到这里,掌握了新的知识在补充。

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

 

 

 

 

 

 

 

 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

黑马程序员java学习笔记——面向对象的特征封装、继承和多态

感觉面向对象是在java中比较难的内容,但也是核心内容,毕竟写代码思想是很重要的,面向对象就是一种思想,精通这种思想,编程就会变的简单。下面就是我学完面向对象这一部分做的笔记。     面向对象   ...

黑马程序员——面向对象之继承学习笔记

------- android培训、java培训、期待与您交流! ---------- 继承 概述 多个类中存在相同属性和行为时,将这些内容抽取到 单独一个类中,那么多个...

黑马程序员--OC面向对象的三大特征——封装、继承、多态

一、封装 1、封装是对象和类概念的主要特性。它是隐藏内部实现,稳定外部接口,可以看作是“包装”。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信...

黑马程序员_day07 面向对象(继承,抽象类,接口)

---------------------- android培训、java培训 期待与您交流! ---------------------- 一:继承。 /* 将学生和工人的共性描述提取出来,单...

黑马程序员_iOS开发之OC之面向对象之三大特性封装、继承和多态

一、封装 1、封装的

黑马程序员_Java基础面向对象之继承

继承的作用: 1、提高了代码的复用性 2、让类与类之间产生了关系,有了这个关系,才有了多态的特性。注意: 千万不要为了获取其他类的功能,简化代码而继承。 必须是类与类之间有所属关系才可以继承。...

黑马程序员--Java学习日记之面向对象(封装,this和static,继承)

Java基础之面向对象..概述.. 面向对象的三大特征:封装,继承,多态 面向对象思想概述         当需求单一,或者简单时,我们一步一步去操作没问题,并且效率也挺高。    ...

黑马程序员——OC语言基础:面向对象三大特性,封装、继承、多态

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、封装性 1.set方法 #import @interface Student :...

黑马程序员——OC语言基础——面向对象三大特性之继承

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 继续上一篇博文回顾了OC中封装的相关知识后,这次我继续复习了OC面向对象思想的三大特性之一,继承...
  • Elors
  • Elors
  • 2015-06-07 18:49
  • 325
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)