类的继承、接口和事件机制

类的继承、接口和事件机制
一:类的继承
1.在java中为了提高代码的重用性及程序的扩展性,由此提出了类的继承。那么,继承的基本格式是什么呢?
public class 子类名(又名 超类)extends 父类名(有名 基类){
}
其中我们需要知道的是:类继承的关键字---->extends。要实现继承的类即为子类,被继承的类则被称为父类(子类只能 继承一个父类,即为单根继承)。 当然,既 然存在继承,那么我们运用继承的时候需要注意哪些条件呢?
(1)子类和父类在同一个包的情况下:
private的属性和方法以及父类的构造方法不能被子类继承
(2)子类和父类不在同一个包下:
a.只有共有的属性和普通方法能被继承。
b.如果是在子类中调用,那么protected的属性和普通方法能被子类继承。
2.方法重写
当子类继承了父类而此时要在子类中改变父类中的方法,这个时候就要用到方法重写了。
注意:
(1)必须是存在继承关系
(2)方法的返回数据类型、方法名、参数个数、参数类型、参数顺序都必须个父类的完全相同
(3)方法的访问修饰符只能大于或等于父类的访问修饰符类型(public > protected > 默认的 >private)
(4)如果子类重写了父类的方法,当实例化的对象调用此方法时会优先执行子类重写的方法
3自动转型
自动转型指的是子类对象会自动转变为父类对象,例:
public static void main(String[] args){
Student stu=new USstudent();//USstudent 自动转换成父类
stu.setName("张三");
}
这里的Student是父类,USstudent 是子类,stu.setName("张三");中stu调用的是子类USstudent 中的方法
注:(1)若子类中重写了父类的方法,那么调用的就是子类中的实现,否则调用父类中的方法
    (2)当子类对象自动转换成父类类型时,通过父类类型变量的引用,只能调用已在父类中定义的方法,不能调用子类中自己的方法
4多态
多态是指相同类型的对象调用相同的方法时,由于继承和重写的机制,得到的结果不一定相同,是对象的不同表现形式
二:接口和事件机制
*******接口*******
1、定义的格式:
public interface 接口名 extends 接口名,... {
//定义常量的格式:
public static final 数据类型 常量名 = 值;
//定义抽象方法的格式:
public 返回值数据类型 方法名(参数类型 参数名,...);
}
注意:
(1)定义接口的关键字是 interface
(2)常量名的每一个字母都必须要大写
(3)抽象方法:接口中的方法只能定义不能实现!且访问修饰符都必须是public类型的
(4)接口是一种特殊的类,接口可以继承接口,并且可以同时继承多个接口
(5)接口不能实例化对象(接口内部的方法只能定义不能实现)
2、接口的实现

public class 类名 extends 类名 implements 接口名,... {
//实现接口中所有的抽象方法
}
注意:
(1)类可以先继承一个另一个类后再去实现一个或者多个接口
(2)类implements 接口后必须实现接口中所有的抽象方法

3、接口和类的区别
(1)接口中只能定义抽象方法和常量;类中除了不能定义抽象方法外,其他的都可以定义。
(2)当类去继承(实现)接口时,可以同时实现多个接口;类去继承类时只能继承一个类(单继承).
(3)接口定义的关键字是interface;类定义的关键字是class.
(4)接口可以继承一个或多个接口;但是类只能继承一个类。
(5)接口不能用来实例化对象;类可以用来实例化对象。
4、抽象类的定义和继承
格式:
public abstract class 抽象类名 extends 类名或抽象类名 implements 接口名,... {
//抽象类中可以定义类中的任何属性和方法
//接口中能定义的在抽象类中也可以定义,但是抽象方法的格式有所不同:
public abstract 返回值数据类型 方法名(参数类型 参数名,...);
}
抽象类就是类和接口的集合。

注意:
(1)如果类去继承抽象类,那么必须要实现抽象类中所有的抽象方法
(2)抽象类也不能用来实例化对象
(3)抽象类实现接口后,不是必须要实现接口中的抽象方法,因为抽象类本身就存在抽象方法
(4)抽象类可以继承类或者抽象类,但是只能继承一个类或者一个抽象类
(5)抽象类可以实现一个或多个接口
*******事件机制*********
1、事件源
所有的组件或容器类都可以作为事件源
2、事件类型
给事件源设定某一种事件的类型,当动作发生时会自动的去捕获到相应的动作,给事件源添加一个监听器(addActionListener();),再绑定一个事 件源的对象
3、执行过程
(1)给事件源添加相应的监听器,并绑定事件的处理对象
(2)当在事件源上发生一个事件时,监听器会自动捕获到发生事件的动作
(3)监听器方法会搜集事件源的相关信息,并将这些信息封装到事件对象中,然后自动调用处理事件的方法
(4)执行方法中的代码

猜你喜欢

转载自871513532.iteye.com/blog/1617875