您的位置:首页 > 移动开发 > Objective-C

面向对象 object 内部类

2015-06-30 16:32 246 查看

多态向上向下转型:

fu x=new zi();//向上转型

zi y=(zi)x; // 向下转型

转型过程中,至始至终,只有子类对象在做着类型的变化。

1,成员变量、

当子父类中出现同名成员变量时,

多态调用时,只看该成员变量的引用所属的类中的成员变量

简单说:无论编译或者运行,都看等号的左边就行

2,成员函数。

出现一模一样函数时,

多态调用,

编译时,看的是引用变量所属的类中的方法。

运行时,看的是对象所属的类中的方法

简单说:编译看左边,运行看右边

成员方法动态绑定到当前对象

3,静态函数

出现一模一样函数,

多态调用,

编译和运行是看引用变量所属的类中的方法,

简单说:编译运行看左边

真正调用静态方法是不需要对象的,直接类名调用,因为静态方法绑定到类上,

所有上述情况,更多用于面试

object:

判断字符串是否相同,不要用==,字符串本身是一个对象,使用string类中的equals方法

内部类:

其实将类定义到了另一个的内部

A类要直接访问B类中的成员时,可以将A类定义到B类中,作为B类的内部类存在

访问规则:

内部类可以直接访问外部类中的成员

外部类想要访问内部类,只能创建内部类的对象来访问。

内部类 相当于外部类中的一个成员,它可以被成员修饰符修饰public private static

如果内部类权限是非私有的,就可以在外部类其他程序中的被访问到。就可以通过创建外部类对象完成,

new Outer().new Inner();

静态内部类,相当于一个外部类。

Outer.Inner2 in=new Outer.Inner2();

Outer.Inner2.show3()

将内部类定义到了局部位置上,注意:局部内部类,只能访问final修饰的局部变量

在非静态的内部类中只允许定义静态的常量,不能定义其他静态

匿名内部类:简化书写的内部类

前提:内部类需要继承或者实现外部的类或者接口

格式:

new 父类or接口名(){子类的内容}

匿名内部类其实就是一个子类对象

Inter in =new Inter(){

public void show1(){};

public void show2(){};

};

in.show1;

in.show2

}

Object obj 指向了自己的子类对象,对象提升为了object,就不能调用子类的特有方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: