面向对象 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,就不能调用子类的特有方法。
多态向上向下转型:
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,就不能调用子类的特有方法。
相关文章推荐
- [object-c]格式化时间
- JSONObject与JSONArray的使用
- objective-c类初始化
- Coroutine couldn't be started because the the game object 'GameController' is inactive!
- Understanding the Objective-C Runtime
- Github上优秀的Objective-C项目简介
- php分析MSSQL返回的时间位object,怎样输出时间?
- Could not reserve enough space for object heap 问题解决
- Github上优秀的Objective-C项目简介
- org.tinygroup.context2object-参数对象构建
- JavaSE实战——API(上) Eclipse使用、Object、Scanner、String、StringBuffer、StringBuilder、Integer、模拟用户登录案例
- 15 面向对象 抽象类 内部类 Object类
- Objective-C程序设计第10章---More on Variable and Data Types
- Thread: staticMetaObject
- 【Objective-C】-空指针和野指针
- jQuery - 基于serializeArray的serializeObject
- GetObject 函数的使用
- iOS Objective c 16进制字符串转为二进制数组
- qobject_cast & sender()
- Objective-C编码规范:26个方面解决iOS开发问题