最贊回答 / xivix
問題1:用基類引用指向派生類時,只能使用基類中的方法。但是,若基類里面有虛方法或抽象方法,且派生類里面也重寫了該虛方法或抽象方法,則程序運行時會調(diào)用派生類里面重寫的方法。問題2:若基類里面有虛方法,派生里面沒有用override重寫虛方法的話,則會調(diào)用基類里面的虛方法,但是意義不大,虛方法的主要作用是體現(xiàn)功能多態(tài)性。
2018-01-05
已采納回答 / Sneakerhead
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication1{??? //public class Pet {??? //??? public Pet(string name) {??? //??????? _name = name;?????? ???? //??? }??? //???...
2017-12-28
最新回答 / 溫暖而不炙熱
1. 參數(shù)前置()后置(int)2. 返回值前置int&后置 const int// const是為了防止i++++運算的結(jié)果并非預(yù)期。3. 函數(shù)體后置調(diào)用前置 ?// 這樣只需要維護(hù)前置運算符的代碼即可。步驟:1. 保留舊值到oldvalue; 2. 增加舊值++(*this);3. 返回保留的舊值return oldValue4. 優(yōu)先用哪個因后置會構(gòu)造并析構(gòu)oldValue臨時對象,故比前置效率低。即優(yōu)先用前置++i。UPInt&?UPInt::operator++()??{????...
2017-11-12
最新回答 / 慕斯卡2337218
namespace 練習(xí)30{/*在類中定義比較函數(shù)? ? 如果第一個數(shù)大就返回1或者第一個數(shù)或者按大小排列? ? 如果相等的返回0? ? 如果第二個數(shù)大就返回第二個數(shù)或者按大小排列? ? 在main中定義兩個數(shù),通過對象調(diào)用方法*/? ? public class Num? ? {? ? ? ? public virtual int Bijiao(int a, int b)? ? ? ? {? ? ? ? ? ? int c = 0;? ? ? ? ? ? if (a > b)? ? ? ? ? ...
2017-11-04
最贊回答 / muke_Lyn
1,肯定不能調(diào)用了啊,轉(zhuǎn)換完得到的cat已經(jīng)不是dog了,這個問題其實可以類比值類型,比如:double d=4.3;int i=(int)d;然后i會得到3,但是i不能當(dāng)做d用?
2017-10-20
最贊回答 / 慕村1133551
Dog dog = new Dog();if(A is true) ((base)dog).PrintName();//調(diào)用父類方法if(B is true) dog.PrintName();// 調(diào)用子類方法
2017-10-17
最贊回答 / weibo_忙于升級的迷糊少女_0
因為通過virtual修飾父類方法,使包含子類的父類對象使用子類中重寫后的該方法;而用new,子類對象只能使用自身該方法,不能調(diào)用父類中該同名方法。
2017-10-17
已采納回答 / 慕粉3655233
?Interface1[] intt = new Interface1[] { new Dog("dddddd") };??????????? for (int i = 0; i >h intt.Length; i++)??????????? {??????????????? intt[i].GGG();??????????? }?interface Interface1??? {?????...
2017-10-17
最新回答 / _F_x
?public class dog:pet? ? {? ? ? ? public dog(string name): base(name)? ? ? ? {?
2017-09-29