最贊回答 / xivix
問題1:用基類引用指向派生類時,只能使用基類中的方法。但是,若基類里面有虛方法或抽象方法,且派生類里面也重寫了該虛方法或抽象方法,則程序運行時會調用派生類里面重寫的方法。問題2:若基類里面有虛方法,派生里面沒有用override重寫虛方法的話,則會調用基類里面的虛方法,但是意義不大,虛方法的主要作用是體現功能多態(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. 參數前置()后置(int)2. 返回值前置int&后置 const int// const是為了防止i++++運算的結果并非預期。3. 函數體后置調用前置 ?// 這樣只需要維護前置運算符的代碼即可。步驟:1. 保留舊值到oldvalue; 2. 增加舊值++(*this);3. 返回保留的舊值return oldValue4. 優(yōu)先用哪個因后置會構造并析構oldValue臨時對象,故比前置效率低。即優(yōu)先用前置++i。UPInt&?UPInt::operator++()??{????...
2017-11-12
最新回答 / 慕斯卡2337218
namespace 練習30{/*在類中定義比較函數? ? 如果第一個數大就返回1或者第一個數或者按大小排列? ? 如果相等的返回0? ? 如果第二個數大就返回第二個數或者按大小排列? ? 在main中定義兩個數,通過對象調用方法*/? ? public class Num? ? {? ? ? ? public virtual int Bijiao(int a, int b)? ? ? ? {? ? ? ? ? ? int c = 0;? ? ? ? ? ? if (a > b)? ? ? ? ? ...
2017-11-04
最贊回答 / muke_Lyn
1,肯定不能調用了啊,轉換完得到的cat已經不是dog了,這個問題其實可以類比值類型,比如:double d=4.3;int i=(int)d;然后i會得到3,但是i不能當做d用?
2017-10-20
最贊回答 / 慕村1133551
Dog dog = new Dog();if(A is true) ((base)dog).PrintName();//調用父類方法if(B is true) dog.PrintName();// 調用子類方法
2017-10-17
最贊回答 / weibo_忙于升級的迷糊少女_0
因為通過virtual修飾父類方法,使包含子類的父類對象使用子類中重寫后的該方法;而用new,子類對象只能使用自身該方法,不能調用父類中該同名方法。
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