Java学习第四课 类的继承与多态特性

来源:互联网 发布:手机怎样删除淘宝评论 编辑:程序博客网 时间:2024/06/13 01:04
1、Java中实现继承是通过extends关键字在声明类时指定其父类,其声明格式如下:

[权限修饰符]class 类名 extends 父类名


2、Java中super有两个作用:
(1)super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)
(2)引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时)
如:super.变量名

super.成员函数据名(实参)


3、Java中定义了private、public、protected和默认的权限修饰符,这些修饰符控制着对类和类的成员变量以及成员方法的访问规则。
(1)public是公有类型的权限修饰符,也就是说,使用public修饰的类、成员变量和成员方法,其他类都可以访问,包括任意包中的任意类以及子类。
(2)private是私有权限修饰符,只有本类,也就是定义private私有成员的类能够访问,对于其他方式的访问,它都会拒绝。
(3)protected是保护级别的权限修饰符,它保护成员不会被其他包或非子类访问。也就是说protected修饰的成员,只能被子类(可以不是直接子类,间接继承的子类也可以)和同一个包中定义的其他类访问。

(4)当不添加任何权限修饰符时,编译器会使用默认的修饰符,该修饰符的权限级别与protected类似,不同之处在于,在其他包定义的子类无法访问父类默认权限修饰的成员。


4、在Java中,所有的类都直接或间接继承了java.lang.Object类。Object类是比较特殊的类,它是所有类的父类,也就是说Java语言中任何一个类都是Object类的子类。当创建一个类时,如果没有使用extends关键字继承指定的类,那么编译器总是默认直接继承Object类,如果指定继承其他类,那么也会间接继承Object类。


5、在Object类中主要包括clone(),finalize(),equals(),toString()等方法,其中常用的两个方法为equals()和toString()。由于所有的类都是Object类的子类,所以任何类都是可以重写Object类中的方法。


6、Object类中的getClass(),notify(),notifyAll(),wait()等方法不能被重写,因为这些方法被定义为final类型。


7、final关键字尅用来修饰类、成员变量和方法等,它通常表示不可变化。例如,使用final修饰的成员变量,一旦赋值之后就不能再更改;使用final修饰的成员方法不能被重写;使用final修饰的类,是不能够继承的。


8、如果一个父类中某个方法被设置为private修饰符,子类将无法访问该方法,自然无法覆盖该方法,所以一个定义为private的方法隐式被指定为final类型,这样无需将一个定义为private的方法再定义为final类型。


9、定义在一个类内部的类叫内部类,包含内部类的类称为外部类。内部类可以声明public、protected、private等访问限制,可以声明为abstract的供其他内部类或外部类继承与扩展,或者声明为static、final的,也可以实现特定的接口。static的内部类行为上象一个独立的类,非static在行为上类似类的属性或方法且禁止声明static的方法。内部类可以访问外部类的所有方法与属性,但static的内部类只能访问外部类的静态属性与方法。必须使用外部类对象来创建内部类对象,而不是直接去new一个。


10、对于多态,可以总结以下几点:
(1)使用父类类型的引用指向子类的对象; 
(2)该引用只能调用父类中定义的方法和变量; 
(3)如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用) 
(4)变量不能被重写(覆盖),“重写”的概念只针对方法
原创粉丝点击