最贊回答 / qq_慕俠5280997
我在收看的教程視頻是,把代碼也給敲出來(lái)了,里面有相應(yīng)的注釋?zhuān)窒硪幌掳蓇sing System;using System.Globalization;using System.Net.Cache;namespace PetShop{??? interface ICatchMice //基類(lèi)中接口的定義??? {??????? void ICatchMice();??? }??? interface IClimbTree //基類(lèi)中接口的定義??? {??????? void IClimbTree();??...
2019-11-22
最新回答 / qq_醉聽(tīng)風(fēng)雨_0
可以隱藏實(shí)現(xiàn),通過(guò)f12只能跳轉(zhuǎn)到接口,看不到實(shí)現(xiàn)的代碼
2019-10-23
最新回答 / 慕數(shù)據(jù)8441107
首先,你要清楚的是,接口聲明不包括數(shù)據(jù)成員,只能包含方法、屬性、事件、索引等成員。接口中屬性聲明比如:int x { get; set; }//聲明屬性存取規(guī)則其中g(shù)et { return _x; }set { _x=x; },在繼承接口的類(lèi)中實(shí)現(xiàn)。###int前不能用修飾符,比如public prodected,接口默認(rèn)訪問(wèn)級(jí)別是public .
2019-08-31
最新回答 / 青松_Qson_cn
? ? abstract public class Pet {? ? ? ? protected string _name;?? ? ? ? public Pet(string name) {? ? ? ? ? ? _name = name;? ? ? ? }? ? ? ? public void printName() {? ? ? ? ? ? Console.WriteLine("Pet name is: "+ _name);? ? ? ? }? ? ? ? // virtual public voi...
2019-08-27
最新回答 / qq_慕設(shè)計(jì)9574980
不同動(dòng)物的cage的屬性不一樣,因此類(lèi)的數(shù)據(jù)結(jié)構(gòu)就不會(huì)一樣啊,不一樣的話(huà)就不能通用一個(gè)cage類(lèi),每次都需要重新寫(xiě)一個(gè)適用不同動(dòng)物的cage類(lèi),你可以寫(xiě)一個(gè)cage基本類(lèi),包含了他們cage的基本共同屬性,但是針對(duì)于更加細(xì)節(jié)的屬性就需要繼承,因此泛型就有優(yōu)勢(shì)了。
2019-08-13
最新回答 / qq_慕俠5280997
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApp8{??? public class Pet??? {??????? public Pet(string name, uint age, string food)??????? {??????????? _name = name;?????????...
2019-08-01
最新回答 / 日安因心
之所以會(huì)用到default關(guān)鍵字,是因?yàn)樾枰诓恢李?lèi)型參數(shù)為值類(lèi)型還是引用類(lèi)型的情況下,為對(duì)象實(shí)例賦初值。考慮以下代碼:class TestDefault<T>? ? {? ? ? ? public T foo()? ? ? ? {? ? ? ? ? ? T t = null; //???? ? ? ? ? ? return t;? ? ? ? }? ? }如果我們用int型來(lái)綁定泛型參數(shù),那么T就是int型,那么注釋的那一行就變成了 int t = null;顯然這是無(wú)意義的。為了解決這一...
2019-07-24
最新回答 / 慕數(shù)據(jù)8441107
接口是一種規(guī)范,使得別人在實(shí)現(xiàn)接口的時(shí)候需要完成接口中那未實(shí)現(xiàn)的方法,普通類(lèi)一旦實(shí)現(xiàn)接口就必須完成接口內(nèi)所有未實(shí)現(xiàn)的方法,但是可以通過(guò)別的方式只去實(shí)現(xiàn)部分方法。可以建一個(gè)抽象類(lèi),讓抽象類(lèi)去實(shí)現(xiàn)接口中的方法(在抽象類(lèi)中,接口中的方法變成非抽象方法),最后讓你那個(gè)普通類(lèi)去繼承抽象類(lèi),這樣就可以只實(shí)現(xiàn)你想實(shí)現(xiàn)的函數(shù)方法了。(因?yàn)樵谄胀?lèi)繼承抽象類(lèi)時(shí),可以只實(shí)現(xiàn)抽象類(lèi)中部分非抽象方法,不需要全部實(shí)現(xiàn),不過(guò)抽象類(lèi)中如果有抽象方法,抽象方法必須實(shí)現(xiàn))還不明白,可以百度一下
2019-07-21
已采納回答 / 慕婉清0528030
先在一個(gè)你想要注冊(cè)事件類(lèi)中提前寫(xiě)好一個(gè)委托方法,例如delegate void Handler【委托類(lèi)型】();然后再寫(xiě)一個(gè)事件聲明,例如public static event Handler【委托類(lèi)型】 NewDog【事件名】;事件聲明使用static,便于直接添加事件,也就是【類(lèi)名.事件名 += 想要注冊(cè)的方法】,取消事件是【類(lèi)名.事件名 -=想要注冊(cè)的方法 】具體步驟可以這樣:1.delegate void Handler【委托類(lèi)型】();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...
2019-07-10
最贊回答 / qq灰色記憶
隱藏方法有它的適用場(chǎng)景,比如說(shuō)某個(gè)父類(lèi)中的方法在子類(lèi)中不需要了,那么你可以直接給隱藏掉,并沒(méi)有說(shuō)一定要在子類(lèi)中隱藏父類(lèi)的方法,而是隱藏,隱藏根據(jù)實(shí)際需要,選擇繼承、重寫(xiě)或者隱藏。這就和坐公交打卡和手機(jī)支付可以同時(shí)存在,雖然你平時(shí)用不到公交卡,但是你需要用公交卡的時(shí)候你可以用。隱藏只是一種繼承方式,并不是繼承就必須要隱藏,希望你理解
2019-06-30
最贊回答 / 眉眉眉
class Pet?{??interface Iclimbtree??{???void climbtree();??}??interface Icatchmice??{???void catchmice();??}??public Pet(string name)??{???Name = name;??}??protected string Name;??virtual public void printf()??{???Console.WriteLine(Name);??}??? public clas...
2019-06-23
最贊回答 / 慕慕0266592
public Dog(string name).base(name)這句話(huà)可以理解成,派生類(lèi)構(gòu)造函數(shù)的參數(shù)傳進(jìn)來(lái),丟給base(),基類(lèi)構(gòu)造函數(shù)拿到這個(gè)參數(shù),進(jìn)行構(gòu)造;所以不能不寫(xiě)
2019-04-28