多态、内部类、权限修饰符、代码块
如有侵权,请联系删除
今日重点:
多态【重点掌握】
内部类【匿名内部类】
权限修饰符【了解】
代码库【理解】
java对象的的基本特征是:
封装、继承、多态
1.1什么是多态:
同一个对象,具有不同的形态
1.2多态的前提条件【重点】
1.必须有继承的关系 2.必须有方法的重写
1.3多态调用方法的特点:
编译看父(左),运行看子(右) Animaol an=new Dog(); Show(new Dog().show);
1.4多态的好处
多态的好处: 提高了代码的扩展性/灵活性【重要】 多态的弊端; 使用多态,必须掉用(子)父类,共有的方法,(只能调用重写后的,才能使用)不能调用独有的方法
1.5多态弊端的解决方案:
自动类型转换: 从小到大,自动转换 强制类型转换: 从大到小,强制转换 向上转型: Animal an=new Dog(); 向下转型:(比须有向上转型) Dog dog=(Dog)an;
1.6向下转型会发生异常
如果转换错误的话会出现:ClassCaseException public static void main(String[] args) { //1.创建一个对象,使用多态 Animal an = new Cat(); //2.调用方法 an.eat(); //可以调用 //ClassCastException 类型转换异常 //TODO Cat cannot be cast to Dog Dog dd = (Dog)an; //必须先向下转型 dd.lookHome();//然后才能调用特有方法 }
1.7如何判断他的类型
instanceof关键字 if(参数 instanceof 类){ }
内部类
2.1什么是内部类:
意思是:一个类A,在A中内部写一个B类,就叫内部类
2.2内部类的特点:
成员内部类:(在成员内部类,可以无条件访问外部类的任何成员) Person.Heart h = new Person().new Heart(); //可以写这么写 Person.Heart h1 = p1.new Heart(); 局部内部类:(在方法中) 匿名内部类:
2.3内部类编译之后的字节码文件:
外部类$内部类名.class
2.4匿名内部类:
- 什么是匿名内部类:
匿名内部类是内部类的简化形式,匿名内部类就是,简化到不需要内部类的名字。
- 内部类的作用:
匿名内部类可以帮助我们快速的创建一个(父类的)子类对象或者一个接口的实现类的对象。
3.权限修饰符
第四章 代码块
由一对大括号括起来的
4.1 构造代码块
{ }
4.2 静态代码块(随着类的加载而加载,且只加载一次)
static{ sout }
- 版权声明:文章来源于网络采集,版权归原创者所有,均已注明来源,如未注明可能来源未知,如有侵权请联系管理员删除。