精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Objective-C之類的三大特性:封裝,繼承,多態(tài)

移動開發(fā) iOS
我們都知道,面向?qū)ο蟪绦蛟O(shè)計中的類有三大特性:繼承,封裝,多態(tài),這個也是介紹類的時候,必須提到的話題,那么今天就來看一下OC中類的三大特性。

我們都知道,面向?qū)ο蟪绦蛟O(shè)計中的類有三大特性:繼承,封裝,多態(tài),這個也是介紹類的時候,必須提到的話題,那么今天就來看一下OC中類的三大特性:

一、封裝

封裝就是對類中的一些字段,方法進行保護,不被外界所訪問到,有一種權(quán)限的控制功能,Java中有四種訪問權(quán)限修飾符:

public,default,protected,private

訪問權(quán)限依次遞減,這樣我們在定義類的時候,哪些字段和方法不想暴露出去,哪些字段和方法可以暴露,可以通過修飾符來完成,這就是封裝,下面來看一個例子吧:

Car.h

//  Car.h  
//  05_ObjectDemo  
//  
//  Created by jiangwei on 14-10-11.  
//  Copyright (c) 2014年 jiangwei. All rights reserved.  
//  
  
#import   
  
@interface Car : NSObject{  
    //這個屬性就是對外進行保密的相當于private,所以我們需要在外部訪問的話,必須定義get/set方法  
    //默認的是private的,但是我們可以使用@public設(shè)置為public屬性的,那么在外部可以直接訪問:person->capcity = 2.8;  
    //當然我們一般不這么使用,因為這會破壞封裝性,這種用法相當于C中的結(jié)構(gòu)體中權(quán)限  
    //一共四種:@public,@protected,@private,@package,這個和Java中是相同的  
@public  
    float _capcity; //油量屬性  
}  
  
- (void)run:(float)t;  
  
@end

這里我們可以看到,OC中也是有四種訪問權(quán)限修飾符:

@public、@protected、@private、@package

其中默認的修飾符是@private

但是這里要注意的是:OC中的方法是沒有修飾符的概念的,這個和Java有很大的區(qū)別,一般都是公開訪問的,即public的,但是我們怎么做到讓OC中的一個方法不能被外界訪問呢?

OC中是這么做的,如果想讓一個方法不被外界訪問的話,只需要在.m文件中實現(xiàn)這個方法,不要在頭文件中進行定義,說白了就是:該方法有實現(xiàn),沒定義,這樣外界在導(dǎo)入頭文件的時候,是沒有這個方法的,但是這個方法我們可以在自己的.m文件中進行使用。

為什么要介紹這點知識呢?因為在后面我們會說到單利模式,到時候就會用到這個知識點了。

#p#

二、繼承

繼承是類中的一個重要的特性,他的出現(xiàn)使得我們沒必要別寫重復(fù)的代碼,可重用性很高。當然OC中的繼承和Java中是一樣的,沒多大區(qū)別,這里在看一個例子吧:

首先來看一下父類:Car

Car.h

//  
//  Car.h  
//  06_ExtendDemo  
//  
//  Created by jiangwei on 14-10-11.  
//  Copyright (c) 2014年 jiangwei. All rights reserved.  
//  
  
#import   
  
@interface Car : NSObject{  
    NSString *_brand;  
    NSString *_color;  
}  
  
- (void)setBrand:(NSString *)brand;  
- (void)setColor:(NSString *)color;  
- (void)brake;  
- (void)quicken;  
  
@end

在Car類中定義了兩個屬性,以及一些方法

Car.m

//  
//  Car.m  
//  06_ExtendDemo  
//  
//  Created by jiangwei on 14-10-11.  
//  Copyright (c) 2014年 jiangwei. All rights reserved.  
//  
  
#import "Car.h"  
  
@implementation Car  
- (void)setBrand:(NSString *)brand{  
    _brand = brand;  
}  
- (void)setColor:(NSString *)color{  
    _color = color;  
}  
- (void)brake{  
    NSLog(@"剎車");  
}  
- (void)quicken{  
    NSLog(@"加速");  
}  
@end

方法的實現(xiàn)

在來看一下子類:

Taxi.h

//  
//  Taxi.h  
//  06_ExtendDemo  
//  
//  Created by jiangwei on 14-10-11.  
//  Copyright (c) 2014年 jiangwei. All rights reserved.  
//  
  
#import "Car.h"  
  
@interface Taxi : Car{  
    NSString *_company;//所屬公司  
}  
  
//打印發(fā)票  
- (void)printTick;  
  
@end

看到Taxi類繼承了父類Car,這里需要導(dǎo)入父類的頭文件,然后在Taxi類中多了一個屬性和方法

Taxi.m

//  
//  Taxi.m  
//  06_ExtendDemo  
//  
//  Created by jiangwei on 14-10-11.  
//  Copyright (c) 2014年 jiangwei. All rights reserved.  
//  
  
#import "Taxi.h"  
  
@implementation Taxi  
  
- (void)printTick{  
    [super brake];  
    [self brake];  
    NSLog(@"%@出租車打印了發(fā)票,公司為:%@,顏色為:%@",_brand,_company,_color);  
}  
  
@end

對方法的實現(xiàn),這里我們看到實現(xiàn)文件中是不需要導(dǎo)入父類Car的頭文件的,因為可以認為,Taxi.h頭文件中已經(jīng)包含了Car的頭文件了。而且,這里可以使用super關(guān)鍵字來調(diào)用父類的方法,同時這里我們也是可以用self關(guān)鍵字來調(diào)用,這里看到其實這兩種方式調(diào)用的效果是一樣的,當我們在子類重新實現(xiàn)brake方法的時候(Java中的重寫概念),那么這時候super關(guān)鍵字調(diào)用的還是父類的方法,而self調(diào)用的就是重寫之后的brake方法了。同樣,我們也是可以使用父類中的屬性。

再看一下另外一個子類:

Truck.h

//  
//  Truck.h  
//  06_ExtendDemo  
//  
//  Created by jiangwei on 14-10-11.  
//  Copyright (c) 2014年 jiangwei. All rights reserved.  
//  
  
#import "Car.h"  
//卡車類繼承Car  
@interface Truck : Car{  
    float _maxWeight;//最大載貨量  
}  
  
//覆蓋父類的方法brake  
//優(yōu)先調(diào)用子類的方法  
- (void)brake;  
  
- (void)unload;  
  
@end

這里就自己定義了一個brake方法,這時候就會覆蓋父類中的brake方法了。

Truck.m

//  
//  Truck.m  
//  06_ExtendDemo  
//  
//  Created by jiangwei on 14-10-11.  
//  Copyright (c) 2014年 jiangwei. All rights reserved.  
//  
  
#import "Truck.h"  
  
@implementation Truck  
  
- (void)brake{  
    [super brake];  
    NSLog(@"Truck類中的brake方法");  
}  
  
- (void)unload{  
    [super brake];//調(diào)用父類的方法  
    [self brake];//也是可以的  
    NSLog(@"%@的卡車卸貨了,載貨量:%.2f,汽車的顏色:%@",_brand,_maxWeight,_color);  
}  
  
@end

這里就可以看到,我們會在brake方法中調(diào)用一下父類的brake方法,然后在實現(xiàn)我們自己的邏輯代碼。

#p#

好了,繼承就說這么多了,其實封裝和繼承兩個特性沒什么難度的,很容易理解的,下面在來看一下最后一個特性:多態(tài)

三、多態(tài)

多態(tài)對于面向?qū)ο笏枷雭碚f,個人感覺是真的很重要,他對以后的編寫代碼的優(yōu)雅方式也是起到很重要的作用,其實現(xiàn)在很多設(shè)計模式中大部分都是用到了多態(tài)的特性,Java中的多態(tài)特性用起來很是方便的,但是C++中就很難用了,其實多態(tài)說白了就是:定義類型和實際類型,一般是基于接口的形式實現(xiàn)的,不多說了,直接看例子吧:

打印機的例子

抽象的打印機類Printer

Printer.h

//  
//  Printer.h  
//  07_DynamicDemo  
//  
//  Created by jiangwei on 14-10-11.  
//  Copyright (c) 2014年 jiangwei. All rights reserved.  
//  
  
#import   
  
@interface Printer : NSObject  
  
- (void) print;  
  
@end

就是一個簡單的方法print

Printer.m

//  
//  Printer.m  
//  07_DynamicDemo  
//  
//  Created by jiangwei on 14-10-11.  
//  Copyright (c) 2014年 jiangwei. All rights reserved.  
//  
  
#import "Printer.h"  
  
@implementation Printer  
  
- (void)print{  
    NSLog(@"打印機打印紙張");  
}  
  
@end

實現(xiàn)也是很簡單的

下面來看一下具體的子類

ColorPrinter.h

//  
//  ColorPrinter.h  
//  07_DynamicDemo  
//  
//  Created by jiangwei on 14-10-11.  
//  Copyright (c) 2014年 jiangwei. All rights reserved.  
//  
  
#import "Printer.h"  
  
//修改父類的打印行為  
@interface ColorPrinter : Printer  
- (void)print;  
@end

ColorPrinter.m

//  
//  ColorPrinter.m  
//  07_DynamicDemo  
//  
//  Created by jiangwei on 14-10-11.  
//  Copyright (c) 2014年 jiangwei. All rights reserved.  
//  
  
#import "ColorPrinter.h"  
  
@implementation ColorPrinter  
  
- (void)print{  
    NSLog(@"彩色打印機");  
}  
  
@end

在看一下另外一個子類

BlackPrinter.h
 

BlackPrinter.m
//  
//  BlackPrinter.m  
//  07_DynamicDemo  
//  
//  Created by jiangwei on 14-10-11.  
//  Copyright (c) 2014年 jiangwei. All rights reserved.  
//  
  
#import "BlackPrinter.h"  
  
@implementation BlackPrinter  
  
- (void)print{  
    NSLog(@"黑白打印機");  
}  
  
@end

這里我們在定義一個Person類,用來操作具體的打印機

Person.h 

Person.m
//  
//  Person.m  
//  07_DynamicDemo  
//  
//  Created by jiangwei on 14-10-11.  
//  Copyright (c) 2014年 jiangwei. All rights reserved.  
//  
  
#import "Person.h"  
  
@implementation Person  
  
/* 
- (void) printWithColor:(ColorPrinter *)colorPrint{ 
    [colorPrint print]; 
} 
 
- (void) printWithBlack:(BlackPrinter *)blackPrint{ 
    [blackPrint print]; 
} 
 */  
  
- (void) doPrint:(Printer *)printer{  
    [printer print];  
}  
  
@end

再來看一下測試代碼:

main.m

//  
//  main.m  
//  07_DynamicDemo  
//  
//  Created by jiangwei on 14-10-11.  
//  Copyright (c) 2014年 jiangwei. All rights reserved.  
//  
  
#import   
  
#import "Person.h"  
#import "BlackPrinter.h"  
#import "ColorPrinter.h"  
  
int main(int argc, const charchar * argv[]) {  
    @autoreleasepool {  
          
        Person *person =[[Person alloc] init];  
          
        ColorPrinter *colorPrint = [[ColorPrinter alloc] init];  
        BlackPrinter *blackPrint = [[BlackPrinter alloc] init];  
          
        //多態(tài)的定義  
        /* 
        Printer *p1 = [[ColorPrinter alloc] init]; 
        Printer *p2 = [[BlackPrinter alloc] init]; 
         
        [person doPrint:p1]; 
        [person doPrint:p2]; 
         */  
          
        //通過控制臺輸入的命令來控制使用哪個打印機  
        int cmd;  
        do{  
            scanf("%d",&cmd);  
            if(cmd == 1){  
                [person doPrint:colorPrint];  
            }else if(cmd == 2){  
                [person doPrint:blackPrint];  
            }  
        }while (1);  
          
    }  
    return 0;  
}

下面就來詳細講解一下多態(tài)的好處

上面的例子是一個彩色打印機和黑白打印機這兩種打印機,然后Person類中有一個操作打印的方法,當然這個方法是需要打印機對象的,如果不用多態(tài)機制實現(xiàn)的話(Person.h中注釋的代碼部分),就是給兩種打印機單獨定義個操作的方法,然后在Person.m(代碼中注釋的部分)中用具體的打印機對象進行操作,在main.m文件中,我們看到,當Person需要使用哪個打印機的時候,就去調(diào)用指定的方法:

[person printWithBlack:blackPrint];//調(diào)用黑白打印機  
[person printWithColor:colorPrint];//調(diào)用彩色打印機

這種設(shè)計就不好了,為什么呢?假如現(xiàn)在又有一種打印機,那么我們還需要在Person.h中定義一種操作這種打印機的方法,那么后續(xù)如果在添加新的打印機呢?還在添加方法嗎?那么 Person.h文件就會變得很臃腫。所以這時候多態(tài)就體現(xiàn)到好處了,使用父類類型,在Person.h中定義一個方法就可以了:

- (void) doPrint:(Printer *)printer;

這里看到了,這個方法的參數(shù)類型就是父類的類型,這就是多態(tài),定義類型為父類類型,實際類型為子類類型

- (void) doPrint:(Printer *)printer{  
    [printer print];  
}

這里調(diào)用print方法,就是傳遞進來的實際類型的print方法。

Printer *p1 = [[ColorPrinter alloc] init];  
Printer *p2 = [[BlackPrinter alloc] init];  
          
[person doPrint:p1];  
[person doPrint:p2];

這里的p1,p2表面上的類型是Printer,但是實際類型是子類類型,所以會調(diào)用他們自己對應(yīng)的print方法。

從上面的例子中我們就可以看到多態(tài)的特新很是重要,當然也是三大特性中比較難理解的,但是在coding的過程中,用多了就自然理解了,沒必要去刻意的理解。

責任編輯:閆佳明 來源: cocoachina
相關(guān)推薦

2014-11-25 10:18:17

Objective-C

2011-08-17 11:15:22

Objective-C語法

2013-07-24 19:19:03

Objective-CiOS開發(fā)動態(tài)特性之protoc

2024-09-18 08:13:01

C#封裝繼承

2015-11-02 10:13:41

iOSObjective-C語法

2014-08-05 13:09:34

Objective-C動態(tài)特性

2011-08-22 09:34:50

Objective-C多態(tài)動態(tài)類型

2011-08-04 13:55:10

Cocoa Objective- 文件

2011-08-10 18:07:29

Objective-C反射

2011-05-11 15:58:34

Objective-C

2013-06-20 10:40:32

Objective-C實現(xiàn)截圖

2013-03-27 12:54:00

iOS開發(fā)Objective-C

2011-05-11 11:20:26

Objective-C

2014-07-29 09:44:35

2013-04-11 13:41:30

Objective-CiOS編程

2011-05-11 13:54:08

Objective-C

2011-05-11 14:06:49

Objective-C

2011-08-04 11:15:46

Objective-C 構(gòu)造函數(shù) 構(gòu)造方法

2011-08-04 14:58:37

Objective-C Cocoa NSString

2011-05-11 15:45:50

內(nèi)存管理Objective-C
點贊
收藏

51CTO技術(shù)棧公眾號

99久久这里有精品| 番号集在线观看| 国产精品久久久久久久久久妞妞| 国产丝袜一区二区| www.com操| 久操av在线| 国产人成亚洲第一网站在线播放| 91精品久久久久久久久久另类| 欧美人妻一区二区| 欧美日韩123| 日韩精品中午字幕| 天堂av在线网站| 七七成人影院| 国产精品区一区二区三| 国产精品18毛片一区二区| 久草视频一区二区| 欧美天堂亚洲电影院在线观看| 日韩精品在线观看视频| 欧美国产日韩另类| 神马午夜在线视频| 亚洲精品成a人| 欧洲精品码一区二区三区免费看| 国产乱淫a∨片免费观看| 午夜亚洲一区| 欧美激情在线播放| 日本黄区免费视频观看| 天天做夜夜做人人爱精品| 7777精品伊人久久久大香线蕉完整版| 黄色网页免费在线观看| 麻豆传媒在线免费| 国产日韩欧美精品综合| 久久久久久久久一区| 国产999久久久| 日本亚洲免费观看| 青青草精品毛片| 国产成人啪精品午夜在线观看| 国产精品99久久| 亚洲午夜女主播在线直播| 亚洲高清无码久久| 亚洲不卡在线| 91精品国产高清一区二区三区| 国产成人精品视频ⅴa片软件竹菊| 怡红院在线观看| 亚洲日穴在线视频| 亚洲精品欧美精品| 高h视频在线| 久久人人超碰精品| 久久久久久欧美精品色一二三四| 亚洲av无码国产精品久久不卡| 狠狠色丁香久久婷婷综合_中| 国产精品免费久久久| 日韩 国产 欧美| 亚洲欧美久久| 欧美一区二区三区四区在线| 日韩精品一区二区三区国语自制| 黄色亚洲精品| 久久频这里精品99香蕉| 日本三级欧美三级| 在线日本高清免费不卡| 羞羞色国产精品| 九九热在线视频播放| 国产亚洲毛片| 日本高清不卡在线| 中文在线观看免费高清| 另类综合日韩欧美亚洲| 成人福利在线视频| 99视频在线观看免费| 国产麻豆9l精品三级站| 91久色国产| 亚洲女人18毛片水真多| 91农村精品一区二区在线| 久久草.com| 国产精品一区在线看| 国产精品久久久久一区| 亚洲色图都市激情| 波多野结依一区| 日韩欧美aaa| 天天干天天爽天天射| 99视频这里有精品| 欧美videofree性高清杂交| 人妻 日韩 欧美 综合 制服| 亚洲黄页网站| 日韩中文字幕在线视频| 黄色一级免费视频| 亚洲一区二区三区高清不卡| 国产精品男女猛烈高潮激情| 国产女人高潮的av毛片| zzijzzij亚洲日本少妇熟睡| 欧美一区二区在线视频观看| 久久国产精品一区| 五月综合激情婷婷六月色窝| 国产黄色特级片| 久久av网站| 亚洲精品一区二三区不卡| 蜜桃av免费观看| 黑丝一区二区三区| 国产精品久久久av久久久| 99在线精品视频免费观看软件| 91在线看国产| 性欧美18一19内谢| 女厕盗摄一区二区三区| 欧美日韩日日摸| 亚洲av永久无码精品| 成人羞羞视频播放网站| 欧美精品激情在线| 亚洲视频一区在线播放| 91视频免费观看| 日本一二三区视频在线| 羞羞影院欧美| 日韩久久精品一区| 欧美aaa级片| 国产欧美成人| 亚洲在线观看视频网站| a黄色在线观看| 香蕉成人伊视频在线观看| 亚洲成人福利在线| 深爱激情综合网| 午夜精品久久久久久久99热浪潮 | 日韩欧美精品网站| 亚洲a级黄色片| 自拍偷拍欧美一区| 欧美精品videosex极品1| 中文字幕在线观看欧美| 26uuu亚洲综合色| 欧美黑人在线观看| 亚洲国产天堂| 一区国产精品视频| 欧美h在线观看| www.亚洲免费av| 男人添女荫道口女人有什么感觉| 欧美亚洲二区| 有码中文亚洲精品| 亚洲视频 欧美视频| av高清不卡在线| 国产成a人亚洲精v品在线观看| 婷婷激情一区| 亚洲欧美中文字幕在线一区| 97超碰人人干| 99久久精品国产一区| 欧美极品少妇无套实战| 欧美影院在线| 欧美成人精品一区| 国产人妖在线播放| 综合久久久久综合| 91精品视频国产| 亚洲激情五月| 亚洲最大av在线| 18在线观看的| 日韩欧美一卡二卡| 久一视频在线观看| 成人午夜伦理影院| 丁香花在线影院观看在线播放| 都市激情久久| 91国偷自产一区二区三区的观看方式| 免费观看黄色av| 午夜久久久影院| 特级西西人体wwwww| 国产深夜精品| 欧美乱偷一区二区三区在线| 欧美一区国产| 中文字幕一区二区精品| 国产一区二区在线不卡| 一区二区在线看| 动漫av在线免费观看| 国产精品久久777777毛茸茸| 欧美一区视久久| 久久天天久久| 欧美成人精品不卡视频在线观看| 人人妻人人澡人人爽精品日本| 午夜亚洲福利老司机| 国精品无码人妻一区二区三区| 日本强好片久久久久久aaa| 亚洲精品一区二区三区蜜桃久| 国产成人久久精品一区二区三区| 欧美激情视频播放| 天堂a√中文在线| 亚洲人成免费| 久久99精品久久久久久秒播放器| 中文字幕在线免费观看视频| 亚洲夜晚福利在线观看| 亚洲在线精品视频| 一区二区三区日韩欧美| 精品无码国产一区二区三区51安| 视频一区在线播放| 亚洲欧美日产图| 视频一区视频二区欧美| 欧美与欧洲交xxxx免费观看| 高清国产福利在线观看| 日韩一级完整毛片| 国产精品6666| 国产精品污www在线观看| wwwxxxx在线观看| 久久不射网站| 最新不卡av| 婷婷综合福利| 亚洲伊人第一页| 日韩大尺度黄色| 九九热精品视频国产| 青青色在线视频| 日韩欧美资源站| 久久久久久亚洲av无码专区| 亚洲免费在线观看| 国产成人精品无码免费看夜聊软件| 精品中文字幕一区二区| 自慰无码一区二区三区| 亚洲精品极品少妇16p| 蜜桃导航-精品导航| 日韩精品久久久久久久软件91| 日韩美女av在线免费观看| 青青在线视频| 丝袜美腿亚洲一区二区| 欧美日韩视频精品二区| 日韩一区二区三区电影在线观看| 国产成人无码专区| 亚洲二区在线视频| 精品一区在线观看视频| 欧美国产禁国产网站cc| 3d动漫精品啪啪一区二区下载| 成人久久视频在线观看| 在线免费观看av网| 免费成人性网站| 色诱视频在线观看| 99精品久久| www.亚洲视频.com| 亚洲久久久久| 中文字幕在线亚洲三区| 国产探花一区在线观看| 久久久久网址| 久久99国产精品久久99大师| 91精品国产高清久久久久久91裸体 | 黄色一级片播放| 韩国av一区| 公共露出暴露狂另类av| 久久亚洲成人| 亚洲春色在线视频| 欧美日韩国产高清电影| 日本一区视频在线观看| 日韩aaa久久蜜桃av| 国产精品免费视频一区二区| 午夜电影一区| 99精品国产一区二区| 国语精品视频| 91在线直播亚洲| 国产精品一区二区三区av| 91精品久久久久久久久中文字幕| 日韩av懂色| 国产在线不卡精品| 亚洲国产91视频| 亚洲曰本av电影| 视频一区日韩| 国产伦精品一区二区三毛| 超碰一区二区三区| 国产女人水真多18毛片18精品| 国产精品欧美大片| 精品欧美一区二区在线观看视频 | 精品亚洲永久免费| 亚洲国产美国国产综合一区二区| 久久免费黄色网址| 午夜精品在线看| 精品人妻无码一区二区性色| 一本久久a久久精品亚洲| 无码人妻熟妇av又粗又大| 在线区一区二视频| 国产一区二区三区黄片| 欧美一区二区三区婷婷月色 | 香蕉成人av| 国产精品久久久久久久一区探花| jizz欧美| 亚洲综合一区二区不卡| 国产一区在线电影| 日本一区二区久久精品| 久久精品青草| 久久久久久www| 老司机午夜免费精品视频| 国产 porn| 国产精品乡下勾搭老头1| 久久福利小视频| 欧美激情在线免费观看| 午夜写真片福利电影网| 狠狠色狠狠色综合日日五| 国内av在线播放| 欧美一区二区三区视频在线观看| 免费观看黄色av| 中文字幕在线亚洲| 久草在线新免费首页资源站| 国产精品成人一区二区| 视频成人永久免费视频| 久久精品国产美女| 爽成人777777婷婷| 一区二区传媒有限公司| 美腿丝袜在线亚洲一区| 国产日韩视频一区| 欧美国产精品一区二区三区| 黄色小视频在线免费看| 欧美性xxxxxx少妇| 亚洲精品免费在线观看视频| 国产亚洲aⅴaaaaaa毛片| 欧美24videosex性欧美| 国产成人亚洲综合91精品| 日韩在线视频一区二区三区| 欧美日韩亚洲在线| 国产一区日韩欧美| 少妇一级淫免费播放| 99久久99久久久精品齐齐| 国产亚洲精品久久久久久豆腐| 精品国产电影一区| 国产白浆在线观看| 国产亚洲a∨片在线观看| 77thz桃花论族在线观看| 91精品国产综合久久香蕉| 免费一区二区| 日韩xxxx视频| 韩国精品久久久| 亚洲国产天堂av| 亚洲1区2区3区视频| 国产精品爽爽久久| 正在播放国产一区| 中文字幕色婷婷在线视频| 国产精品对白刺激久久久| 久久久国产精品| 一区二区三区网址| 久久夜色精品国产噜噜av| 精品无码一区二区三区电影桃花| 欧美一区二区三区在| 里番在线观看网站| 国产精品欧美亚洲777777| 婷婷成人在线| 九色在线视频观看| 91亚洲精华国产精华精华液| 日韩熟女精品一区二区三区| 日韩免费视频一区二区| sm国产在线调教视频| 成人免费看片视频| 国产韩日影视精品| 久久久精品高清| 国产精品久久久久久久岛一牛影视 | 国产对白叫床清晰在线播放| 欧美洲成人男女午夜视频| 好吊妞国产欧美日韩免费观看网站| 国产1区2区3区中文字幕| 韩国av一区二区三区在线观看| 免费观看特级毛片| 欧美日韩aaaaa| 毛片网站在线免费观看| 成人激情在线播放| 亚洲激情久久| 亚洲午夜精品在线观看| 一区二区三区日本| 亚洲精品字幕在线| 久久久久久久久久久人体| 大奶在线精品| 国产 福利 在线| 久久综合久久综合久久综合| www.国产一区二区| 一本色道久久88精品综合| 福利视频亚洲| 性欧美18一19内谢| 岛国一区二区在线观看| 国产午夜精品一区二区理论影院 | 国产一区二区三区四区三区四| 亚洲一区和二区| 欧美日韩一区二区免费在线观看| 毛片网站在线观看| 国产精品自产拍在线观看| 亚洲欧美色图| 欧美大喷水吹潮合集在线观看| 欧美性xxxxx极品| 成年人视频在线免费观看| 成人免费看黄网站| 最新日韩在线| 国产人妻大战黑人20p| 欧美日韩国产系列| 男人天堂亚洲| 女同一区二区| 激情欧美一区二区三区在线观看| 久久久久久久极品内射| 亚洲精品一区二区久| 欧美一区二区三区婷婷| 日本五级黄色片| 国产亚洲视频系列| 99久久久久久久| 91精品国产777在线观看| 成人羞羞视频在线看网址| 久久久久亚洲AV成人网人人小说| 日韩欧美国产高清91| 日本不卡不卡| 国产精品一 二 三| 免费看精品久久片| 国产小视频在线看| 伊人久久久久久久久久久| 亚洲天堂中文字幕在线观看| 日本在线观看a| 亚洲图片激情小说| 三级av在线| 亚洲影院色无极综合| 三级成人在线视频| 国产一级片免费观看| 中文字幕亚洲一区二区三区五十路| 成人福利一区| 国内自拍第二页|