多态、内部类、Object、异常

来源:互联网 发布:淘宝优惠券平台排名 编辑:程序博客网 时间:2024/06/07 08:22
  1. 多态:就是对象的多种形态,简单的说就是一个对象对应着多种类型,在代码中的体现就是父类或者接口的引用指向其子类的对象。
  2. 多态的特点:1,提高了代码的扩展性;弊端是前期定义的功能不能使用后期子类的特有内容,简单说就是只能调用父类中方法,不能调用子类中特有方法2,多态的前提是 :1,必须有关系,继承或实现;2,要有覆盖;3**多态其实就是向上转型, Animal a = new Cat();猫向上转为动物, 此时a只能操作动物中的方法,如果还想操作Cat类中的特有方法,可以向下转型,Cat c = (Cat)a;注意:对于转型,自始至终都是子类对象在做着类型的变化,重点内容所以不可以 Animal b= new Animal(); Cat d =(Cat)b;**
  3. instanceof 用于判断对象的具体类型,a instanceof Cat,表示判断 a是否是Cat类型。
  4. 多态时成员的特点:1,成员变量找父类中的。简单说就是编译时候看左边父类中是否有,有同过,没有失败,运行时候也是找左边父类中。(编译看左边,运行看左边)2,成员函数,编译也是看父类,有编译通过,没有编译失败,运行找右边子类中方法。3,静态函数,编译看左边父类,运行看左边。
  5. 内部类:其实就是把类定义在类中, 内部类访问特点1,内部类可以直接访问外部类中的成员2,外部类要访问内部类,必须建立内部类对象
  6. 内部类的特点:1,可以被成员修饰符所修饰,可以直接访问外部类中的内部类中的成员。Outer.Inner in =new Outter().new Inner();2,如果内部类是静态的,相当于一个外部类 Outer.Inner I in= new Outer.Inner();3, 如果内部类是静态的成员是静态的Outer.Inner.show();4,内部类中定义了静态成员,该内部类也必须是静态的,(静态随着类的加载而加载,就不需要创建对象,)5,内部类 可以直接访问外部类中成员,是因为内部类持有了外部类的引用。6,内部类可以放在局部位置上,也就是放在方法里。7,内部类在局部位置上访问局部变量的话,只能访问局部中被final修饰的局部变量。
  7. 匿名内部类:就是内部类的简写,有前提,内部类必须继承或者实现一个外部类或者接口,所以就是一个匿名子类对象 格式new 父(){子类内容}.show();
  8. 静态方法中不能直接new 内部类,会提示静态上下文中不能引用非静态变量,需要给内部类加static修饰
  9. 对象的初始换过程图:这里写图片描述
  10. Object:所有类的父类,当中的equals方法,所有类都含有,默认的是比较两个对象的地址值,a.equals(b),a和b都是对象,内部调的就是a==b。
  11. getClass方法:获取当前对象的字节码文件对象,在new对象时候,系统首先会加载class文件,class文件共性向上抽取得到 class Class类,getClass方法,其实得到的就是Class类的对象。
  12. 异常:是在运行时期发生的不正常情况。在java中国用类的形式对不正常情况进行了描素和封装对象 ,描写不正常的类就成为异常类
    1. 根据问题分为两大类:1,一般不可处理的,Error(如内存溢出错误)2,可以处理Exception;它们的父类是Throwable;无论是Error还是Exception都是问题,发生问题都可以抛出。可抛是通过throws和throw两个关键字 操作的,也就是被这两个关键字操作的对象和类都具有可抛性,3Error特点是Jvm抛出的严重问题,这种问题发生一般不针对性处理,直接修改程序,遇到问题,虚拟机会new 出对象抛给调用者,最终抛给虚拟机,打印在控制台。抛出异常,下面的代码就不再执行了。这里写图片描述
  13. 异常的分类:1,编译时候被监测异常,只要是Exception和其子类,除了特殊子类RuntimeException体系,这种问题一旦出现,希望在编译时候就进行检查,让这种问题有对应的处理方式。这种问题都可以针对性的处理2,运行时候异常RuntimeException和其子类。这种问题的发生,无法让功能继续,运算无法进行,更多是因为调用者的原因导致的而引发了内部转台的改变导致的,这种问题一般不处理,直接编译通过,在运行时,让调用者调用时的程序强制停止,让低啊用者对代码进行修正。
  14. try{ 检测}catch(捕获异常){ 处理异常},一个try多个catch的时候,如果catch中有父类Exception,要放到最下面,什么时候用try,什么时候用throws,功能内容可以解决用catc,解决不了用throws,finally都会被执行,通常用于关闭资源这里写图片描述
    15.注意事项:子类在覆盖父类方法时,父类的方法如果抛出了异常那么子类的方法只能抛出父类的异常或者该异常的子类。如果父类抛出多个异常,那么子类只能抛出父类异常的子集。
原创粉丝点击