java基础一

接口与抽象类

相同点:接口和抽象类都不能被实例化,位于继承树的顶端,用于被其他类实现和继承;都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。

区别:

1、不能为普通方法提供方法体接口里只能包含抽象方法,静态方法和默认方法,不能为普通方法提供方法实现,抽象类则完全可以包含普通方法,接口中的普通方法默认为抽象方法。

2、public static final 赋值   抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final 类型的,并且必须赋值,否则不通过编译。

3、是否有构造器  接口中不能包含构造器,抽象类可以包含构造器,抽象类的构造器并不是用于创建对象,而是让其子类调用这些构造器来完成属于抽象类的初始化操作。

4、不能包含初始化块   接口里不能包含初始化块 但抽象类里完全可以包含初始化块

5、继承一个抽象类、多个接口  一个类智能继承一个抽象类,而一个类却可以实现多个接口

使用场景

拥有一些方法并且想让他们中的一些有默认实现,那么使用抽象类

想实现多继承,必须使用接口,由于java不支持多继承,子类不能继承多个类,但可以实现多个接口

java 中的异常类

所有的异常都属于Throwable的子类,Error(错误) 和Exception(异常) 。Error是程序无法处理的异常,当发生Error时程序会终止运行。我们一般意义上讲的异常指的是Exception。

异常分为运行时异常和非运行时异常

NullPointerException - 试图访问一空对象的变量、方法或空数组的元素

ArrayIndexOutOfBoundsException - 数组越界访问

NoClassDefFoundException - JAVA运行时系统找不到所引用的类

ArithmeticException - 算术运算中,被0除或模除

ArrayStoreException - 数据存储异常,写数组操作时,对象或数据类型不兼容

ClassCastException - 类型转换异常

IllegalArgumentException - 方法的参数无效

IllegalThreadStateException - 试图非法改变线程状态,比方说试图启动一已经运行的线程

NumberFormatException - 数据格式异常,试图把一字符串非法转换成数值(或相反)

SecurityException - 如果Applet试图执行一被WWW浏览器安全设置所禁止的操作

IncompatibleClassChangeException - 如改变了某一类定义,却没有重新编译其他引用了这个类的对象。如某一成员变量的声明被从静态改变为非静态,但其他引用了这个变量的类却没有重新编译,或者相反。如删除了类声明中的某一域或方法,但没有重新编译那些引用了这个域或方法的类

OutOfMemoryException - 内存不足,通常发生于创建对象之时

IncompatibleTypeException - 试图实例化一个接口,Java运行时系统将抛出这个异常

UnsatisfiedLinkException - 如果所需调用的方法是C函数,但Java运行时系统却无法连接这个函数

InternalException - 系统内部故障所导致的异常情况,可能是因为Java运行时系统本身的原因。如果发现一可重现的InternalException,可以直接给Sun公司发电邮java@java.Sun.com



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值