黑马程序员——java面向对象(三)多态、内部类、包
来源:互联网 发布:python入门经典 下载 编辑:程序博客网 时间:2024/05/16 07:07
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一、包
二、内部类
内部类概述:
内部类的访问规则
1、内部类可以直接访问外部类中的成员,包括私有。
之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类的引用,格式: 外部类名.this。
2、外部类要访问内部类,必须建立内部类对象。
interface Person {public abstract void study();}class PersonDemo {//接口名作为形式参数//其实这里需要的不是接口,而是该接口的实现类的对象public void method(Person p) {p.study();}}//实现类class Student implements Person {public void study() {System.out.println("好好学习,天天向上");}}class InnerClassTest2 {public static void main(String[] args) {//测试PersonDemo pd = new PersonDemo();Person p = new Student();pd.method(p);System.out.println("--------------------");//匿名内部类在开发中的使用//匿名内部类的本质是继承类或者实现了接口的子类匿名对象pd.method(new Person(){public void study() {System.out.println("好好学习,天天向上");}});}}
多态分为两种:编译时多态和运行时多态。
编译时类型:主观概念,把它看作什么。
运行时类型:客观概念,实际它是什么。
例:Animal a=new Dog();
指着狗问,这个动物是什么?
运行时多态的三原则:
对象类型不变。
只能对对象调用编译时类型中定义的方法。
在程序的运行时,根据对象的运行时类型,找覆盖后的方法来调用。(运行时动态类型绑定)
强制类型转换: 一定没有新对象生成。(父类的引用赋值给子类的引用需要进行强制类型转换)
关键字:instanceof
用法:引用 instanceof 类名 判断这个引用所指向的对象是否属于这个类。
用在强制转换之前,避免类型转换异常。
if(a instanceofDog){
Dog d=(Dog)a;
}
多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。
class Animal {public void eat(){}}class Dog extends Animal {public void eat() {}public void lookDoor() {}}class Cat extends Animal {public void eat() {}public void playGame() {}}class DuoTaiDemo5 {public static void main(String[] args) {//内存中的是狗Animal a = new Dog();Dog d = (Dog)a;//内存中是猫a = new Cat();Cat c = (Cat)a;//内存中是猫Dog dd = (Dog)a; //ClassCastException}}
- 黑马程序员——java面向对象(三)多态、内部类、包
- 黑马程序员——java-面向对象二(继承,多态,抽象,接口,包,内部类)
- 黑马程序员——java第九、十天:面向对象(内部类、异常和包)
- 黑马程序员——java基础----面向对象(三)内部类
- 黑马程序员——面向对象(多态,内部类、异常、包)
- 黑马程序员——Java面向对象(三)之内部类、异常、包等
- 黑马程序员 Java面向对象——(匿名)内部类
- 黑马程序员 Java面向对象——(匿名)内部类
- 黑马程序员 Java面向对象——(匿名)内部类
- 黑马程序员 java学习笔记——面向对象3:多态(含内部类)
- 黑马程序员——面向对象、内部类、多态
- 黑马程序员——【Java】面向对象——内部类_匿名内部类
- 黑马程序员——Java面向对象(接口、多态、内部类)
- 黑马程序员—Java面向对象(抽象类、模板方法设计模式、接口、多态、内部类)
- 黑马程序员---Java基础---面向对象:多态、内部类、异常
- 黑马程序员——第九天(Java面向对象-内部类-异常)
- 黑马程序员—java面向对象总结(4)—内部类、异常
- 黑马程序员——java基础(面向对象)抽象、接口、内部类
- 分治法(最近点对)——HDU 1007
- CentOS下载及版本选择
- jdk源码之Collection接口
- poj 3630 Phone List
- C语言程序反汇编
- 黑马程序员——java面向对象(三)多态、内部类、包
- 白话经典算法系列之八 MoreWindows白话经典算法之七大排序总结篇
- item属性总结
- java中list的toArray有参方法小结
- Mat类的一些用法
- Code[vs]数字三角形(基础棋盘dp)
- Activiti boundrytimer 和listen结合使用学习
- 刷leetcode:Intersection of Two Linked Lists
- Android 无法识别布局文件问题解决方案