覆写、重写、多态

1、父类对象用子类对象来实例化的,那么,这个新对象只继承父类的成员,子类的成员根本没有实例化。

** 编译时已经决定左边对象的类型,右边的类型只要包含右边类就可以。

2、虚方法:virtual

他只能修饰方法的,这个虚方法是包含实现的,虚方法和抽象方法一样也可以用override来覆写。

这种功能是为将来留出了修改这个方法的可能。

3、覆写:override

当用override覆写之后原方法是已经覆盖掉了,所以不能再被执行,这时父类对象用子类对象来实例化时,对象获得不了已经被覆盖掉的原方法,只能

   用override覆写出来的新方法。

override覆写出来的新方法,还可以被它的子类再重新override覆写出来的新新方法,这时该子类来创建期父类的话,这个方法执行的是子类中的新新

   方法,原方法和新方法都被新新方法覆盖掉。

4、重载:overlode

方法的名字相同,但参数类型、参数个数、返回类型等不同的方法之间可以重载。

新的版本中已经基本上系统指定完成重载过程。

5、重写:overwrite

子类和父类的方法名称相同,此时子类的方法要new来修饰,就是表示子类的同名方法重写了父类的同名方法,这时父类的方法只能在本类中通过Base对象类调用。

6、局部类型:partial

局部类型是一个纯语言层的编译处理的,不影响任何执行机制——事实上C#编译器在编译的时候仍会将各个部分的局部类型合并成一个完整的类。

(1) 类型特别大,不宜放在一个文件中实现。

(2) 一个类型中的一部分代码为自动化工具生成的代码,不宜与我们自己编写的代码混合在一起。

(3) 需要多人合作编写一个类。

时间: 2024-12-19 11:09:31

覆写、重写、多态的相关文章

Java多态特性:重载和覆写的比较

Java重载: 在同一个类中 方法具有相同的名字,相同或不同的返回值,但参数不同的多个方法(参数个数或参数类型) public class MethoDemo{ public static void main(String args[]){ int one = add(10,20) ; // 调用整型的加法操作 float two = add(10.3f,13.3f) ; // 调用浮点数的加法操作 int three = add(10,20,30) ; // 调用有三个参数的加法操作 Syst

JAVA中继承时方法的重载(overload)与重写/覆写(override)

JAVA继承时方法的重载(overload)与重写/覆写(override) 重载-Override 函数的方法参数个数或类型不一致,称为方法的重载. 从含义上说,只要求参数的个数或参数的类型不一致就说两个函数是重载函数,而至于返回值是否一样,没关系.同时,重载可以发生在同一个类中也可以发生在继承关系中. class A { } class B extends A { public void fun(String data1) { System.out.println(data1); } pub

第一节:重写(new)、覆写(overwrite)、和重载(overload)

一丶重写<NEW> 子类重写父类方法,方法里加new, eg: public new void CommonMethord1(string msg){} 子类继承父类中的普通方法,如果在子类中重写了一个和父类中完全相同的方法,子类中会报警告(问是否显式的隐藏父类的中的方法),如果在子类中的方法前加上new关键字,则警告消失 二丶覆写(override) 含义:在子类中,继承的父类中的抽象方法(abstract)和虚方法(virtual);  父类中虚方法(virtual)子类可以对其进行覆写,

Java基础学习笔记【02】方法覆写、快捷键、super、this、单例模式、适配器

访问类型默认default就是默认没写访问权限,就是包下的访问权限(类内部.同一个包) 除了private访问权限本类,其他的访问权限都包括包 继承:[A继承B] 1 类名A extends 类名B 类的方法[覆写]: 方法要素 描述 方法名 子类父类的覆写方法名一致 返回值 小于父类的返回 参数 小于父类的参数类型 访问类型 大于父类的访问类型 覆写: 1 public void Fun(object obj){  } 1 2 @override public void Fun(string

关于方法的继承和覆写

* 关于方法的覆写: *   关于方法的重写和覆盖的前提条件: *     子类继承父类,就继承了父类的所有方法和属性,就相当于把父类的代码完全复制一份到子类,只是相当于 *     我们子类中可以添加新的方法和属性,同时也可以扩展改写继承自父类的方法 *     1 什么时候方法要进行重写? *     如果父类中的方法已经无法满足子类的要求,需要将父类中的方法进行重新写一遍 *     2.子类如果重写父类中的方法之后,这类对象一定调用重写之后的方法 *     3 发生方法覆盖的条件: *

java重载与覆写

很多同学对于overload和override傻傻分不清楚,建议不要死记硬背概念性的知识,要理解着去记忆. 先给出我的定义: overload(重载):在同一类或者有着继承关系的类中,一组名称相同,参数不同的方法组.本质是对不同方法的称呼. override(覆写):存在继承关系的两个类之间,在子类中重新定义了父类中存在的方法.本质是针对同一个方法,给出不同的实现. 我们先来看重载的例子: public class OverloadParent{ public String getPerson(

object 类 toString() 和 equals() 的覆写

基本作用: objiect类是所有类的父类. 任何一个类定义的时候如果没有明确定义了父类的话,默认父类是Object类. class A extends Object{} 在整个java里面,类的继承关系一直存在的.例如: String 类 这时候一个好处就出现了,利用Object类可以接受一切类. Object obj = new Book() ://向上转型 Obect obj = “Hello”  : //向上转型 如果不知道参数类型的时候,使用Object是最好的选择 http://do

c++重载与覆写

重载:指子类改写了父类的方法,覆写:指同一个函数,同样的参数列表,同样的返回值的,但是函数内部的实现过程不同. 重载: 1.方法名必须相同. 2.参数列表必须不相同,与参数列表的顺序无关. 3.返回值类型可以不相同. 覆写:派生类重写基类的虚函数. 1.只有虚方法和抽象方法才能被覆写. 2.相同的函数名. 3.相同的参数类型. 4.相同的返回值类型.

java继承和覆写

继承的目的?     : 代码的重用   什么是继承?        extends     语法 :         class 子类 extends 父类 {         }    如果没有声明继承  就默认继承Object(所有类的祖类)静态变量 : 不能被继承,不过可以直接类名调用静态方法 : 不能被继承,可以调用成员变量 : 能被继承,前提是子类没有和父类相同的变量(数据类型 和 变量名)  如果有相同的变量,就不会继承成员方法 : 会被继承 会被覆写局部变量 : 在方法中 无所谓