http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 2774|回复: 6

[其他] 完全菜鸟小白,求大神指导第一个程序

[复制链接]
发表于 2013-11-20 20:09:26 | 显示全部楼层 |阅读模式
这是我的第一个程序,所以我的问题对于大神来讲可能是弱智型的或是不可理喻型的,但还望大神能够不吝赐教,指出错误,帮忙改正,谢了!!!

我的第一个程序是这样的,我想先定义一个抽象类Animal作为基类,基类里有两个域名字和类型一个Animal的构造函数,还有一个虚方法Getname;
Dog类是Animal的派生类,派生类有一个自己的构造函数,并重新覆盖了基类的虚方法Getname;
在主函数中,我实例化一个名为doudou的对象,然后调用Getname;

以下是我的代码:
[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication10
{
    class Program
    {
        abstract public calss Animal
        {
            public string A_name;
            public string A_Type;
            public Animal(string name)
            {   A_name=name;
                A_Type="动物";
            }
        public virtual string Getname(){
            Console.WriteLine("当前的动物是{0},名字是{1}",A_name,A_Type);
            return A_name;}
         }
        class Dog:Animal{
            public Dog(){
                A_Type="狗";}
            public override string Getname(){
                base.Getname();
            }
        }
        static void Main(string[] args)
        {
         Animal doudou=new Dog("豆豆");
         doudou.Getname();
        }
    }
}




以下是错误的信息:
错误        1        应为 get 或 set 访问器                第12行        
错误        2        应输入 }                        第11行        
错误        3        方法必须具有返回类型                第14行        
错误        4        应输入 class、delegate、enum、interface 或 struct                第29行        
错误        5        应输入标识符                                                        第29行
错误        6        应输入 class、delegate、enum、interface 或 struct                第29行
错误        7        应输入 class、delegate、enum、interface 或 struct        C        第31行
错误        8        应输入类型、命名空间定义或文件尾                第34行        
错误        9        应输入类型、命名空间定义或文件尾                第35行        



哎,真的很想弄明白怎么回事,大神啊,救救我吧



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-11-20 20:47:10 | 显示全部楼层
你的错误是在类里嵌套了类,类是不能嵌套的,
发表于 2013-11-20 20:49:17 | 显示全部楼层
[C#] 纯文本查看 复制代码
 abstract public calss Animal
        {
            public string A_name;
            public string A_Type;
            public Animal(string name)
            {   A_name=name;
                A_Type="动物";
            }
        public virtual string Getname(){
            Console.WriteLine("当前的动物是{0},名字是{1}",A_name,A_Type);
            return A_name;}
         }
        class Dog:Animal{
            public Dog(){
                A_Type="狗";}
            public override string Getname(){
                base.Getname();
            }
        }
把这些放在外面    class Program

 楼主| 发表于 2013-11-20 20:49:49 | 显示全部楼层
站长苏飞 发表于 2013-11-20 20:47
你的错误是在类里嵌套了类,类是不能嵌套的,

我并没有在Animal里嵌套定义Dog啊,我是在定义了Animal的外面,定义的Dog
发表于 2013-11-20 20:51:37 | 显示全部楼层
看楼上,我没说这个
 楼主| 发表于 2013-11-20 21:01:23 | 显示全部楼层
站长苏飞 发表于 2013-11-20 20:51
看楼上,我没说这个

看懂您的意思了,谢谢飞哥,这是我改制后的代码,但是点击生成之后,还是有3个错误,您看下哈,谢谢了


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication10
{
    abstract public class Animal
        {
            public string A_name;
            public string A_Type;
            public Animal(string name)
            {   A_name=name;
                A_Type="动物";
            }
        public virtual string Getname(){
            Console.WriteLine("当前的动物是{0},名字是{1}",A_name,A_Type);
            return A_name;}
         }
        class Dog:Animal{
            public Dog(){                                    //错误        1        “ConsoleApplication10.Animal”不包含采用“0”参数的构造函数       
                A_Type="狗";}
            public override string Getname(){     //错误        2        “ConsoleApplication10.Dog.Getname()”: 并非所有的代码路径都返回值       
                base.Getname();
            }
        }
    class Program
    {

        static void Main(string[] args)
        {
         Animal doudou=new Dog("豆豆");    //错误        3        “ConsoleApplication10.Dog”不包含采用“1”参数的构造函数       
         doudou.Getname();
        }
    }
}


发表于 2013-11-21 08:07:17 | 显示全部楼层
[C#] 纯文本查看 复制代码
  abstract public class Animal
        {
            public string A_name;
            public string A_Type;
            public virtual string Getname();
        }
        class Dog : Animal
        {
            public Dog(string name)
            {
                A_name = name;
                A_Type = "动物";
            }
            public override string Getname()
            {
                Console.WriteLine("当前的动物是{0},名字是{1}", A_name, A_Type);
                return A_name;
            }
        }
 class Program
    {

        static void Main(string[] args)
        {
         Animal doudou=new Dog("豆豆");    
         doudou.Getname();
        }
    }
这样写就行了,你要知道
abstract 类型的类只能有方便签名,不能具体实现的,
这个可以参考这里
http://msdn.microsoft.com/zh-cn/library/sf985hc5.aspx
构造方法是不能继承的,只能在子类中实现。

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-18 07:33

© 2014-2021

快速回复 返回顶部 返回列表