问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c#中请说明类的三大特性,并举例说明类的继承和多态。

发布网友 发布时间:2022-05-12 05:27

我来回答

2个回答

热心网友 时间:2022-04-22 13:42

以控件来说

封装:你用那些控件,只需要调用具体的属性和方法,对怎么呈现的根本不需要了解,这就是封装
继承:有个Control基类,封装了常用的方法和属性,所有控件都是继承自它,而且都会有这些属性和方法,这就是继承
多态:Control类是继承自object,object有个ToString()方法,但是你每个控件调用一次就会知道,输出字符串是不一样的,因为它们内部重写(override)了ToString()方法.每个控件还有很多同名,但不同参数或者不同返回值的方法(重载),这就是多态

热心网友 时间:2022-04-22 15:00

1、Java应用程序与Applet程序的区别?
Java应用程序与Applet程序的区别在于运行方式的不同。答:Java Application是完整的程序,需要独立的解释器来解释运行;而Java Applet则是嵌在HTML编写的Web页面中的非独立运行程序,由Web浏览器内部包含的Java解释器来解释运行。
在源程序代码中两者的主要区别是:任何一个Java Application应用程序必须有且只有一个main方法,它是整个程序的入口方法;任何一个Applet小应用程序要求程序中有且必须有一个类是系统类Applet的子类,即该类头部分以extends Applet结尾。
2、抽象类是否能生成具体对象?其存在的意义?
不能生成具体对象。在面向对象领域,抽象类主要用来进行类型隐藏。首先,抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承关系。其次,在抽象类的定义中,我们可以赋予方法的默认行为。使用抽象类来定义允许多个实现的类型,比使用接口有一个明显的优势:抽象类的演化比接口的演化要容易的多。在后续的发行版中,如果希望在抽象类中增加一个方法,只增加一个默认的合理的实现即可,抽象类的所有实现都自动提供了这个新的方法。对于接口,这是行不通的。虽然可以在骨架实现类中增加一方法的实现来解决部分问题,但这不能解决不从骨架实现类继承的接口实现的问题。由此,设计公有的接口要非常谨慎,一旦一个接口被公开且被广泛实现,对它进行修改将是不可能的。
3、方法(或者函数)重载与覆盖的区别?
覆盖”指的是重新定义基类的方法,使得该方法在派生类中有着不同的含义。“重载”指的是赋予方法名两个定义,解析出来有不同的参数列表。重载可以存在于任何类中, 不管定义类时是否明确指定了基类。 另一方面,如果派生类的方法拥有不同的参数数目,或者如果某个参数类型不同于基类中的地,则派生类会拥有这两个方法,这时就是“重载”。重载时也可以不涉及到基类,只要在类定义中同时给出两个方法定义即可。 相同点: 被覆盖和重载的函数的函数名必须是一样的; 不同点: 覆盖的函数的函数参数表必须和被覆盖的函数的参数表一样,重载的函数的函数参数表必须和被重载的函数的函数参数表不一样。
4、构造方法为什么经常需要重载?
构造方法是一种特殊的方法,与一般的方法不同是:1.一个构造函数是对象被创建时初始对象的成员函数。它具有和它所在的类完全一样的名字。一旦定义好一个构造函数,创建对象时就会自动调用它。它没有返回类型,甚至连void也没有。这是因为一个类的构造函数的返回值的类型就是这个类本身。2.构造方法的调用是在创建一个对象时使用new操作进行的。构造函数的任务是初始化一个对象的内部状态,所以用new操作符创建一个实例后,立刻就会得到一个清楚、可用的对象。 3.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。 构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。在Java中,任何变量在被使用前都必须先设置初值.Java提供了为类的成员变量赋初值的专门功能:构造方法(constructor) 构造方法是一种特殊的成员方法,它的特殊性反映在如下几个方面:(1)构造方法名与类名相同. (2)构造方法不返回任何值,也没有返回类型.不能定义为void,在方法名前面不声明方法类型。(3)每个类可以有零个或多个构造方法. (4)构造方法在创建对象时自动执行,一般不能显式地直接调用. (5)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。(6)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。(7)构造方法可以重载,以参数的个数,类型,或排列顺序区分。
5、构造函数(方法)为什么必须与类名同名?
1.构造函数的命名必须和类名完全相同;在java中普通函数可以和构造函数同名,但是必须带有返回值。
2.构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有返回值,也不能用void来修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的.
3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用.
4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点
5当一个类只定义了私有的构造函数,将无法通过new关键字来创建其对象,当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数。
6、为什么不能说java是严格的面向对象语言或者纯面向对象语言呢?
就java本质而言,是面相对象的,但是你有没有发现,java也不全是,比如说基本类型,int,那他就是整型而不是对象,转换类型是还得借助包装类。Java的缺点公认有如下三点:(1)存在非对象的数据类型;(2)不能够用一种描述方法来表达各种类(Class);(3)无法继承2个以上的类的装配。虽然也有人认为编程语言应该是一个什么样子会因人而异,不应该算成缺点。不过,上述三点却可以导致编程人员使用混乱,降低源码的可读性及程序的可维护性。
7、举例说明继承机制?说明继承的意义?
在现实生活中的继承,可以理解为儿子继承了父亲的财产,即财产重用;面向对象程序设计中的继承,则是代码重用;继承是利用现有的类创建新类的过程,现有的类称作基类(或父类),创建的新类称作派生类(子类)。最高层是最普遍的、最一般的情况,往下每一层都比上一层更具体,并包含有高层的特征,通过这样的层次结构使下层的类能自动享用上层类的特点和性质;继承其实就是自动地共享基类中成员属性和成员方法的机制。
 在Java中实现继承需要使用到extends关键字;
 实现继承的一般语法是:
[访问修饰符] class 派生类名 extends 基类名 {
成员列表
}
实现继承示例
如:
class Student extends Person
{
……
}
class Person { //定义人类
public String mName; //姓名
public int mAge; //年龄
public void dining() //吃饭的方法
}

class Student extends Person { //学生类继承于人类
public float mGrade; //成绩
public void examination() //考试的方法
}

class Teacher extends Person { //教师类继承于人类
public float mSalary; //薪水
public void prelection() //上课的方法
}

public class InheritanceDemo { //该类用于容纳main方法
public static void main(String[] args) {
Student std = new Student(); //实例化学生对象
std.mName = "张三"; std.mAge = 18; //为姓名和年龄赋值,访问的是父类中的成员
std.dining(); //调用吃饭的方法,访问的是父类中的成员
std.examination(); //调用考试方法,访问的是子类中的成员

Teacher tea = new Teacher(); //实例化教师对象
tea.mName = "谭浩强"; tea.mAge = 65;
tea.dining();
tea.prelection();
}
}
当今软件设计的特征:软件规模越来越大;软件设计者越来越多;软件设计分工越来越细。
引入继承,实现了代码重用;引入继承,实现了递增式的程序设计。继承是能自动传播代码和重用代码的有力工具;继承能够在某些比较一般的类的基础上建造、建立和扩充新类;
能减少代码和数据的重复冗余度,并通过增强一致性来减少模块间的接口和界面,从而增强了程序的可维护性;能清晰地体现出类与类之间的层次结构关系。
8、接口与抽象类的区别?
首先,abstract class在Java语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。也许,这是Java语言的设计者在考虑Java对于多重继承的支持方面的一种折中考虑吧。

其次,在abstract class的定义中,我们可以赋予方法的默认行为。但是在interface的定义中,方法却不能拥有默认行为,为了绕过这个*,必须使用委托,但是这会 增加一些复杂性,有时会造成很大的麻烦。
9、什么是包?java中包的意义?
简单一点就是文件夹,可以把包看作是管理类文件的文件夹,使用原因是项目越来越大,文件和类越来越多。使用包的好处也很明显:
第一 :当Java源文件多时,可以通过声明包的形式分类存放,这样有利于查找;
第二 :当有Java源文件同名时,通过使用声明包的形式存放,这样也可以不免同名冲突。
10、举例说明继承机制?比较继承与封装之间的关系?
所谓封装,就是将属性和方法*到一起,封装到一个对象中去
继承,是代码重用;继承是利用现有的类创建新类的过程
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑文件编辑好如何发送给微信如何把电脑上的文件发到微信上 笔记本电脑上的文件发送到微信怎么把电脑里的文件传到手机微信 我每天早晨吃米糊放白糖有害吗? 吃糖太多对我有好处么! 适合明年工作计划开头的句子 让人耳目一新的年度工作计划开头句子锦集五十四句 个人年度工作计划开头优美句子 让上司眼前一亮的工作计划开头语收藏四十一句 工作计划开头 怎么写工作计划开头 新干线0系电动列车的运行设备 内衣商标起名 内衣品牌起名 我想用自已的名字注册一个内衣商标,谁能给我想个好听的名字谢谢,我名字红 蓉,想用这两个字其 频率确定的情况下,李萨茹图的形状和相位差之间存在一一对应关系吗?为什么?请问大家一下,这里不太懂。 零零后你认为大李老师对一一的教育方式对吗? 给新内衣裤品牌起名? 企业厂家命一个名,两个字的 李意宁的名字打分多少 给新内衣裤品牌起名?另企业厂家命一个名 名字测试打分?李玺晨。 李依诺名字多少分 李易诺名字测试打分 湖南娄底36岁女性叫李壹壹有多少? 我想给我孩子取名叫李壹壹怎么样 公园需要用到哪些地砖,有什么样的地砖 园林常用铺砖有哪些? 初三毕业典礼观后感 600字 造成温室效应的气体中能反应生成另一种非金属单质的是哪两种气体? 毕业寄语600字 产生温室效应的主要气体是二氧化碳、氢气、二氧化硫还是臭氧? 毕业了,真xx 600字记叙文 她为什么选择做这个模型呢的英文句子是什么 海尔热水器最简单的讲解口径谁会 新注册公司出资者签署的与出资有关的协议内容有哪些 百搭的英语作文句子 关于模型制作的大学英语作文怎么写 Dkfxrs-16海尔热水器显示板怎么调 16A的空气开关海尔热水器用小吗? 已经能够熟练掌握div+css,现在想学html5+css3,有什么比较好的学习方法吗?不知道从何入手?求帮助 谁能帮忙解释一下这一小段关于参数覆盖的MATLAB代码? 三菱plc读取后提示参数已存在是否覆盖 卫星参数覆盖是咋回事 营业执照是有限公司改个体工商户 怎么把打印机的纸张大小参数覆盖到其它的打印应用软件 存储过程传参不同覆盖问题 java启动参数重复时,是前面的参数生效还是后面的生效? java方法覆盖参数列表必须一致吗? DOS copy命令加什么参数能自动覆盖 覆盖专项可以调整的参数有哪些 覆盖率的覆盖率准则 flac模型已经建好了参数也覆完了现在改变其中一块区域的参数要怎么做呢?