| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4477 人关注过本帖
标题:C#不是只允许单继承的,怎么可以可以这样继承的,搞不明白
只看楼主 加入收藏
新手2012
Rank: 2
等 级:论坛游民
帖 子:4
专家分:13
注 册:2012-10-2
收藏
 问题点数:0 回复次数:11 
C#不是只允许单继承的,怎么可以可以这样继承的,搞不明白
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Person
{
    class Program
    {   
       public static void Main(String[] args)
        {
           Chinese c1 = new Chinese();
           c1.name = "Tom";
           c1.height = 170;
           c1.weight = 55;
           c1.speak("Tom",170,55);
           c1.kongfu();
           Korean k1 = new Korean();
           k1.zhengrong();
           Console.ReadKey();
        }
    }
    class Person
    {
       public string name;
       public int height;
       public int weight;
       public void speak(string name,int height,int weight)
       {
           Console.WriteLine("Hello,my name is {0},my height is {1}cm,weight is {2}kg.",name,height,weight);
       }
    }
    class Chinese : Person
    {
        public void kongfu()
        {
            Console.WriteLine("我打,中国人不是东亚病夫!");
        }
    }
    class Korean : Person
    {
        public void zhengrong()
        {
            Console.WriteLine("来,让我来帮你整容!");
        }
    }
}
//求大家帮忙解答下,我对继承真的不怎么明白。
搜索更多相关主题的帖子: public Korean Chinese 继承 
2012-10-03 23:11
qmm3
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-10-14
收藏
得分:0 
你这里只是单继承,没有多断承啊
2012-10-04 00:03
jeanine123
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:65
专家分:192
注 册:2011-9-17
收藏
得分:0 
按我的理解,继承就是子类继承父类的所有属性和方法。
像这个地方 Person类是Chinese类和Korean类的父类,所以,创建Chinese类的时候,person类的name、height、weight等属性和speak方法均被Chinese类继承,同样Korean类也继承了这些方法和属性。
其实这个挺好理解的,楼主可以找本这样的书看看。继承其实挺简单的。
2012-10-04 09:01
ZWYyj
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:9
帖 子:124
专家分:587
注 册:2012-8-10
收藏
得分:0 
这里,Korean类继承与没继承Person类,都没关系,你去掉 :Person,结果是一样的。

class Korean
    {
        public void zhengrong()
        {
            Console.WriteLine("来,让我来帮你整容!");
        }
    }
C#单继承是指C#中的对象仅能直接派生于一个基类,那么楼主的chinese类和korean类都分别仅派生于person类,并没有错。
希望对你有帮助。多看看继承方面的资料,很重要。

[ 本帖最后由 ZWYyj 于 2012-10-4 15:24 编辑 ]
2012-10-04 10:48
lybh24
Rank: 8Rank: 8
等 级:贵宾
威 望:19
帖 子:120
专家分:701
注 册:2012-9-8
收藏
得分:0 
楼主也许你把单继承理解反了,单继承是指子类继承的父类只有一个,也就是“:”后面只能写一个类,而被继承的父类( Person)
是可以有多个子类的,而且继承支持多层继承,也就是例如,Chinese也可以被继承,而他的子类也就是有beijingperson,yunnanperson,...
 类的继承是一对多的,就是说老祖宗只有一个,子孙可以有无线个;但是要注意的是:接口是可以多继承的,中间用逗号分隔

新群:273209143
2012-10-04 13:09
新手2012
Rank: 2
等 级:论坛游民
帖 子:4
专家分:13
注 册:2012-10-2
收藏
得分:0 
回复 5楼 lybh24
嗯,现在理解了,自学的时候很容易自己理解错,有时听别人说才恍然大悟!
2012-10-04 19:43
zhu91aizhu
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2012-6-29
收藏
得分:0 
我是这么理解, 派生类只能有一个直接基类。间接地没有限制。
2012-10-05 20:46
自强
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:132
专家分:130
注 册:2011-10-3
收藏
得分:0 
单继承,意思就是说一个子类只能继承一个父类,而不能继承多个,好比一个人不可能有多个爸爸。(这样理解可以不?呵呵)
但是,一个父类可以同时拥有多个子类……(双胞胎,多胞胎嘛)。

上楼说的间接继承,可以比喻成爷生父,父生子,子生孙……

[ 本帖最后由 自强 于 2012-10-7 01:51 编辑 ]

成为一名真正合格的程序设计人员,是我的梦想……我希望我的梦一直保持下去,直到我从这个世界消失……
2012-10-07 01:37
枸杞子
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-10-6
收藏
得分:0 
单继承:
1、基类只能有一个;
2、基类支持多层继承;
3、基类可以有多个派生类;
2012-10-07 11:15
羊癫风
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-10-11
收藏
得分:0 
2012-10-11 13:29
快速回复:C#不是只允许单继承的,怎么可以可以这样继承的,搞不明白
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015631 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved