在java中,类的继承是指在一个现有类的基础上去构造一个新的类,构造出来的心累被称为子类,现有类被称作为父类。
子类会自动拥有父类所有可继承的属性和方法。
使用extends关键子,来生命一个类继承另一个类。比如:
class A{} //定义A类
class B extends A{} //定义B类继承A类
注意:
>1.一个类只能有一个直接父类
>2.多个类可以继承一个父类
>3.多层继承是可以的。即一个类的父类可以再去继承另外的父类。
在子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表以及返回值类型。
super关键字用于访问父类成员变量和成员方法。具体格式如下:
super.成员变量
super.成员方法
super.成员方法(参数1,参数2,...)
final关键字用于修饰类、变量和方法。 即无法改变或最终的含义。
有以下特性:
>>>final修饰的类不能被继承。
>>>final修饰的方法不能被子类重写
>>>final修饰的变量(成员变量和局部变量)是常量,只能赋值一次。
不包含方法体的方法是抽象方法,抽象方法必须使用abstract关键字来修饰。如:
abstract void shout();//定义抽象方法shout()
定义抽象类时需要注意: ----抽象类:包含抽象方法的类必须声明为抽象类;但抽象类可以不包含任何抽象方法。
只需要使用abstract关键字来修饰。
示例:
abstract class Animal {
abstract int shout();
}
抽象方法没有方法体,不可以被调用。如果想要调用,需要创建子类,在子类中将抽象类中的抽象方法进行实现。
什么是接口:如果一个抽象类中所有方法都是抽象的,则可以将这个类用另外一种方式来定义,即接口。
接口是有常量和抽象方法组成的特殊类,是对抽象类的进一步抽象。
语法格式:在定义接口时,需要使用interface关键字来声明,其语法格式如下:
[public] interface 接口名 [extends 接口1,接口2.
[public] [static] [final] 数据类型 常量名 = 常量值;
[public] [abstract] 返回值 抽象方法名(参数列表);
}
注意:一个接口可以有多个父接口。
调用接口中的方法:由于接口中的方法都是抽象方法,因此不能通过实例化对象的方式来调用接口中的方法。
此时需要定义一个类,并使用implements关键字实现接口中所有的方法。
接口的实现类声明格式:
[<修饰符>] class <类名> [extends <超类名>] [implements <接口1>,<接口2>,...]
由于参数类型而导致执行效果各异的现象就是多态。继承是多态得以实现的基础。
将子类对象当作父类类型使用的情况,称为向上转型。此时不能通过父类变量去调用子类中特有的方法。
将父类对象当作子类类型使用的情况,称为向下转型。
instanceof关键字用来判断一个对象是否为某个类(或接口)的实例或者子类实例。语法格式如下:
对象(或对象引用变量) instanceof 类(或接口)
Object类是类层次结构的跟类,每个类都直接或间接继承自该类,所有对象(包括数组)都实现了这个类的方法。
Object类中的常用方法如:
equals() 只是其他某个对象是否与此对象相等
getClass() 返回此Obeject的运行时类
hashCode() 返回该对象的哈希值
toString() 返回该对象的字符串表示
在类里卖弄定义的类称之为内部类(inner class)。内部类是外部类的一个成员。
Java内部类分为成员内部类、方法内部类和匿名内部类等。
Throwable:
Error代表程序中产生的错误;Exception代表程序中产生的异常。
Throwable常用方法:
getMessage() 返回throwable的详细消息字符串
printStackTrace() 将此throwable及其追踪输出至标准错误流
printStackTrace(PrintStream s) 将此throwable及其追踪输出至指定的输出流
异常捕获try...catch语句
try{
//程序代码块
}catch(ExceptionType(Exception类及其子类) e){
//对ExceptionType的处理
}
finally代码块
通常在try...catch后使用finally代码块来完成必须做的事情。
注意:当try...catch中执行到System.exit()语句时,finally代码块不会执行。
利用throws关键字对外声明该方法有可能发生的异常,这样调查者在调用方法时,就明确地知道该方法有异常,
并且必须在程序中对异常进行处理,否则编译无法通过。
throws关键字声明抛出异常的语法格式如下:
修饰符 返回值类型 方法名(参数1, 参数2...) throws ExceptionType1 [, ExceptionType2...]{
}