JAVA学习笔记(10)接口,多态,内部类,对象初始化过程

  •  

  • 对象的多态性: 多态在代码中的体现:父类或者接口的引用指向其子类的对象。

  •  

  • 多态的好处:提高了代码的扩展性,前期定义的代码可以使用后期的内容。

  •  

  • 多态的弊端:前期定义的内容(调用)不能使用后期子类的特有内容。

  • 多态的前提:1必须有关系,继承,实现。2 要有覆盖。

  • 转型:注意:对于转型,自始至终都是子类对象在做着类型的变化。

  • ClassCastException 类型转换异常

  • 多态---类型判断:instanceof:用于判断对象的具体类型。只能用于引用数据类型判断。

  • 通常在向下转型前用于健壮性的判断。

  • 多态----成员的特点: 结果为3

  • 1成员变量:编译时:参考引用型变量所属的类中是否有调用的成员变量,有,编译通过,没有,编译失败。运行时:参考引用型变量所属的类中是否有调用的成员变量,并运行该所属类中的成员变量。简单说:编译和运行都参考等号的左边。

  • 2成员函数(非静态):编译时: 参考引用型变量所属的类中是否有调用的函数。有,编译通过,没有,编译失败。

  • 运行时:参考的是对象所属的类中是否有调用的函数。

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

  • 3静态函数:编译时:参考引用型变量所属的类中是否有调用的静态方法。运行时:参考引用型变量所属的类中是否有调用的静态方法。

  • 简单说:编译和运行都看左边。

  • 其实对于静态方法,是不需要对象的。直接用类名调用即可。

  • 内部类

  • 内部类访问特点:1内部类可以直接访问外部类中的成员。2外部类要访问内部类,必须建立内部类的对象。

  • 一般用于类的设计。分析事物时,发现该事物描述中还有事物,而且这个事物还在访问被描述事物的内容。这时就是还有的事物定义成内部类来描述。

  •  

  • 静态成员只能访问静态变量。

  • 如果内部类中定义了静态成员,该内部类也必须是静态的。

  •  

  • 为什么内部类能直接访问外部类中成员呢?

  • 那是因为内部类持有了外部类的引用。外部类名.this

  • 内部类可以存放在局部位置上。

  • 内部类在局部位置上只能访问局部 中被final修饰的局部变量。

  •  

  •  

  • 匿名内部类:就是内部类的简写格式。

  • 必须有前提:内部类必须继承或者实现一个外部类或者接口。

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

  • 格式: new 父类or接口(){子类内容}

  • 匿名内部类:通常的使用场景之一:当函数参数是接口类型时,而且接口中的方法不超过三个。可以用匿名内部类作为实际参数进行传递。

  • 对象的初始化过程:

猜你喜欢

转载自blog.csdn.net/qq_39500966/article/details/81388798