ios開發之-繼承的實現運用

//
//  main.m
//  繼承
////#import <Foundation/Foundation.h>
#import "Animal.h"
#import "Cat.h"
#import "Dog.h"
#import "FeedMan.h"int main(int argc, const char * argv[])
{//    Animal * animal = [Animal new];
//    
//    [animal eat];
//    
//    [animal sleep];//    //忘記引入頭文件
//    Animal * cat =[[Cat alloc]init];
//    
//    [cat eat];//    Cat * cat = [[Cat alloc]init];
//    
//    [cat catchMouse];
//    
//    Dog * dog = [[Dog alloc]init];
//    
//    [dog bark];
//    //父類指針保存子類對象。如何調用子類對象的方法?//    Animal * animal_cat = [[Cat alloc]init];
//    
//    FeedMan * man = [[FeedMan alloc]init];
//    
//    [man showName:animal_cat];//[animal_cat eat];//    [animal_cat setName:@"Hello Cat"];Animal * animal_dog = [[Dog alloc]init];FeedMan * man = [[FeedMan alloc]init];[man showName:animal_dog];[man FeedAnimal:animal_dog];//子類調用父類的方法,如何實現方法的不同性?return 0;
}
//
//  FeedMan.h
//  繼承
//#import "Animal.h"@interface FeedMan : NSObject-(void)showName:(Animal *)animal;-(void)FeedAnimal:(Animal *)animal;
@end

//
//  FeedMan.m
//  繼承#import "FeedMan.h"
#import "Dog.h"
#import "Cat.h"@implementation FeedMan-(void)FeedAnimal:(Animal *)animal
{if ([animal isKindOfClass:[Dog class]] ) {Dog * dog = (Dog *)animal;[dog eat];}
}-(void)showName:(Animal *)animal
{//能夠動態的檢測動物的類型用到的一個類?if([animal isKindOfClass:[Dog class]]){//須要強制類型轉換Dog * dog = (Dog *)animal;[dog bark];}else if ([animal isKindOfClass:[Cat class]]){Cat * cat = (Cat *)animal;[cat catchMouse];}}@end
//
//  Animal.h
//  繼承#import <Foundation/Foundation.h>@interface Animal : NSObject
{NSString * _name;int _age;
}@property NSString * name;
@property int age;-(void)eat;-(void)sleep;-(void)showAge;@end

//
//  Animal.m
//  繼承
//#import "Animal.h"@implementation Animal-(void)eat
{NSLog(@"動物吃東西");
}-(void)sleep
{NSLog(@"動物睡覺了");
}-(void)showAge
{NSLog(@"小動物的年齡");
}
@end

//
//  Dog.h
//  繼承
//#import "Animal.h"@interface Dog : Animal
{}-(void)bark;
-(void)eat;@end

//
//  Dog.m
//  繼承
//#import "Dog.h"@implementation Dog-(void)bark
{NSLog(@"小狗汪汪叫");
}
-(void)eat
{NSLog(@"小狗吃東西");
}@end

//
//  Cat.h
//  繼承#import "Animal.h"@interface Cat : Animal
{}
-(void)catchMouse;-(void)eat;
@end

//
//  Cat.m
//  繼承
//#import "Cat.h"@implementation Cat
{}-(void)catchMouse
{NSLog(@"貓咪會捉老鼠!

"); } -(void)eat { NSLog(@"小貓吃小魚"); } @end




本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257741.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257741.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257741.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

查找字段 如何 過濾

dm.ADOTbBug 使用Filter 屬性的話&#xff0c;不能包括 查找字段。 方法1 在過濾事件里 使用查找字段。 http://www.itdelphi.com/delphibbs/doc/2001/558361.htm 方法2 就是使用查找字段對應的KeyFields 為字段名。 比如查找字段是 部門名稱&#xff0c;對應的數據集里KeyFiel…

python字符串去頭尾_帶你認識優秀的python代碼

有一串長的字符串names "LI XIA , ZHAO MING ,LAO WANG *,DA XIONG >,LI MEI MEI, CHANG JIANG,LI QIANG,ZHANG WU JI,ZHANG SAN FENG,DU GU QIU BAI,QIAO FENG"。要求&#xff1a;&#xff08;1&#xff09;過濾所有的名字&#xff0c;去掉每個名字左右的空格和…

python學習筆記之裝飾器、遞歸、算法(第四天)

參考老師的博客&#xff1a; 金角&#xff1a;http://www.cnblogs.com/alex3714/articles/5161349.html 銀角&#xff1a;http://www.cnblogs.com/wupeiqi/articles/4963027.html 一、冒泡算法實例&#xff1a; a [32,5,22,41,7,31,12,102,74,37,9,25] 1、方法1&#xff1a; c…

數字信號處理筆記1-信號與常見操作

年輕人&#xff0c;你對數學一無所知&#xff0c;你只是習慣了而已。 —馮諾伊曼 前言 本學期開始跟著實驗室學習計算機視覺領域&#xff0c;而一個重要的基礎知識就是《數字圖像處理》&#xff0c;而數字信號處理作為一個大類&#xff0c;可以將數字圖像處理理解為數字信號處…

[linux驅動]linux驅動模塊

一&#xff0c;內核模塊的概念 經常在內核驅動代碼看到類似fs_init()等驅動初始化函數&#xff0c;那么這個和module_init()函數的差別在哪里&#xff0c;宏定義__define_initcall(level,fn)對于內核的初始化很重要&#xff0c;他指示編譯器在編譯的時候&#xff0c;將一系列初…

看我如何基于PythonFacepp打造智能監控系統

由于種種原因&#xff0c;最近想親自做一個基于python&facepp打造的智能監控系統。 000&#xff1a;萌芽 1&#xff1a;暑假在家很無聊 想出去玩&#xff0c;找不到人。玩個lol&#xff08;已卸載&#xff09;&#xff0c;老是坑人。實在是無聊至極&#xff0c;不過&#x…

c++ 遍歷所有點且距離最短_編程小白暑期進階筆記41-C語言數據結構與算法圖遍歷的應用...

基于廣度優先遍歷算法的應用思考題&#xff1a;&#xff08;思考題答案&#xff1a;BFS(廣度優先遍歷)在一般的帶權圖中是不能解決最短路問題&#xff0c;了解BFS的都知道&#xff0c;BFS是根據節點到源節點之間的節點數遍歷的&#xff0c;也就是先訪問離源節點節點數最少的點。…

underscorejs-groupBy學習

2.18 groupBy 2.18.1 語法 _.groupBy(list, iteratee, [context]) 2.18.2 說明 把list分為多個集合&#xff0c;iterator為分組的依據,返回值為Object list可以是數組、對象、字符串或arguments等iteratee為分組的依據.iterator的參數(value, key, list)iterator如果是function…

關于@WebServlet(“LoginServlet“)404 報錯的解決辦法 “請求的資源[/test/LoginServlet] 不可用”

關于WebServlet&#xff08;“LoginServlet”&#xff09;404 報錯的解決辦法 “請求的資源[/test/LoginServlet] 不可用” *一切事物的開頭總是困難這句話&#xff0c;在任何一種科學上都是適用的。 * ——馬克思 一個困擾了我n天的問題&#xff0c;終于終于還是解決了&#…

ASP.NET MVC+EF框架+EasyUI實現權限管理系列(14)-主框架搭建

ASP.NET MVCEF框架EasyUI實現權限管理系列(14)-主框架搭建 原文:ASP.NET MVCEF框架EasyUI實現權限管理系列(14)-主框架搭建ASP.NET MVCEF框架EasyUI實現權限管系列 (開篇) (1):框架搭建 (2):數據庫訪問層的設計Demo (3):面向接口編程 (4 ):業務邏輯層的封裝 (5):前臺…

常用事務代碼 sap_SAP_PS_事務代碼

[轉]SAP PS常用事務代碼T-CODESAP項目系統(Project System&#xff0c;以下簡稱PS)模塊作為傳統的非常規模塊(除FI、CO、MM、PP、SD之外的模塊)之一&#xff0c;在最近幾年在國內也得到的較為廣泛的應用,與PS應用火熱場景相對應的是PS內外部顧問的極度缺乏。這種缺乏一方面表現…

Java 冒泡排序的實現

實現原理&#xff1a; 比較相鄰的元素。如果第一個比第二個大&#xff0c;就交換他們兩個。 對每一對相鄰元素作同樣的工作&#xff0c;從開始第一對到結尾的最后一對。在這一點&#xff0c;最后的元素應該會是最大的數。 針對所有的元素重復以上的步驟&#xff0c;除了最后一個…

CLion for mac安裝配置

前言 本文詳細多圖介紹 IntelliJ IDEA For Mac的激活教程&#xff0c;相當于永久激活 文件包百度云下載&#xff1a;(通過與熊論道網站解密&#xff09; 熊曰&#xff1a;呋溫捕嘿誘襲氏樣溫住既非破哮誒襲非捕溫肉性盜森魚非襲啽蜜呦訴嘿溫類盜山寶住出森非喜誘捕發嗥既肉嗅…

solr后臺界面介紹——(十一)

1.加一個collection的方法 復制solr-home下的collection1&#xff0c;修改名字為collection2。并且修改collection2文件夾中配置文件core.properties中的名字為collection2&#xff0c;重啟服務器。 2.后臺界面介紹 Dashboard 儀表盤&#xff0c;顯示了該Solr實例開始啟動運行的…

功率信號與能量信號的超棒理解!

功率信號與能量信號的理解&#xff01; 功率信號和能量信號一直是一個令我疑惑的概念&#xff0c;一個無限一個為零。但是下面令我茅塞頓開&#xff01; &#xff5e;&#xff5e;&#xff5e;分割線啊分割線&#xff5e;&#xff5e;&#xff5e;

vscode終端不識別python_VSCode無法識別我的已安裝Python包

Windows上的VSCode與Python。 Don安裝的Python擴展&#xff0c;不確定它有什么不同&#xff0c;但考慮給我的環境使用VSCode for Python&#xff0c;在那個過程中&#xff0c;我安裝了metapy包。我能夠在VSCode中的終端窗口內運行此metapy&#xff0c;但不能在編輯器中運行PS C…

現在也是只能謝謝隨筆了,但是在以后收貨的日子里會有更多的感想記下

每天雖然都會在各個方面都記下一點日常事務的說明&#xff0c;但是會有重復&#xff0c;以后工作了向高中一樣一定會有許多的話&#xff0c;但是我不希望這是一些抱怨&#xff0c;更多的應該是收貨&#xff0c;這幾天也是早上不知怎么會有點頭疼&#xff0c;加上每天取暖口有點…

[轉載]AngularJS之Factory vs Service vs Provider

http://www.oschina.net/translate/angularjs-factory-vs-service-vs-provider http://tylermcginnis.com/angularjs-factory-vs-service-vs-provider/ 要注意的文章中&#xff0c;app.provider(...)里的代碼有點出處&#xff0c;之后作者改過&#xff0c;但是轉載的網站上圖片…

C#學習筆記:預處理指令

C#和C/C一樣&#xff0c;也支持預處理指令&#xff0c;下面我們來看看C#中的預處理指令。 #region 代碼折疊功能&#xff0c;配合#endregion使用&#xff0c;如下&#xff1a; 點擊后如下&#xff1a; 條件預處理 條件預處理可以根據給出的條件決定最終進行編譯的代碼&#xff…

android sh 指令_Java/Android中實現Shell命令

有時候我們需要實現一個功能。不過這個功能用我們傳統的Java代碼實現起來會有一些困難&#xff0c;這時我們可以嘗試利用Shell命令來實現。你可以按照下面的代碼模塊來進行你想要實現的Shell命令(注&#xff1a;也不是所有的Shell命令都能用Java代碼來實現)。public class Main…