4月4日星期二

一、类的操作

1、继承

(1、)概念

[1、]:继承是在一个现有类的基础上派生出一个新的类,新的类能吸收已有类的数据属性和行为,并能对其进行扩展方法、变量等。

[2、]:现有的类称之为父类或基类,派生出来的类称之为子类或派生类

(2、)通过extends关键字进行继承

4月4日星期二_第1张图片

(3、)特点

[1、]:Java的继承是单继承

[2、]:Java的继承具有传递性。

[3、]:所有类都直接或者间接继承Object类。

[4、]:子类中成员变量和父类重名,直接用时是子类的。

[5、]:在存在继承关系时,当使用new关键字创建一个子类对象时,不但要调用子类相应的构造方法,还会调用父类的构造方法。

2、方法的重写

(1、)有些时候子类需要对继承来的方法进行一些修改,即对父类的方法进行重写。

(2、)子类重写父类中的方法时,子类中重写的方法要与父类中被重写的方法具有相同的方法名称、参数列表和返回值类型。

(3、)子类重写父类方法,重写方法不能使用比被重写方法更严格的访问权限。

3、super关键字

(1、)概念

[1、]:当子类重写父类的方法之后,子类对象将无法访问父类被重写的方法。

[2、]:当子类对象中定义了与父类相同的成员变量,子类对象也将无法访问父类同名的成员变量,

(2、)super关键字用来访问父类中的非私有成员。

(3、)使用super关键字访问父类的成员变量、成员方法。

(4、)使用super关键字调用父类的构造方法。

[1、]:子类的构造方法必须调用其基类的构造方法。

[2、]:子类可以在自己的构造方法中使用super()调用基类的构造方法。

[3、]:如果使用super()调用基类的构造方法,必须写在子类构造方法的第一行。

[4、]:如果子类的构造方法中没有显式地调用基类的构造方法,那么系统自动调用基类中没有参数的构造方法。

[5、]:如果子类的构造方法中既没有显式的调用基类的构造方法,而且基类中也没有无参数的构造方法,则编译出错。

4、final关键字

(1、)final修饰的类不能够被继承。

(2、)final修饰的变量是常量,只能赋值一次。

[1、]:修饰局部变量:可以不初始化,但它只能被赋值一次。

[2、]:修饰成员变量:必须由程序员指定初始值,否则会出现编译错误。

(3、)final修饰的方法不能被子类重写。

二、抽象类(抽象类是从多个类中抽象出来的模板)

1、抽象类和抽象方法的特点

(1、)使用abstract关键字修饰的类为抽象类。

(2、)含有抽象方法的类必须声明为抽象类。

(3、)抽象类中可以没有抽象方法。

(4、)抽象类不能够被实例化,否则会出现编译错误。

(5、)抽象类只能被继承。抽象方法,必须由子类提供实现(重写)。

(6、)abstract关键字与final关键字不能同时使用。

2、抽象类是用来被继承的,继承抽象类的子类有两个选择。

(1、)部分实现或完全不实现父类的所有抽象方法,但此时子类必须声明为抽象类。

(2、)部分实现或完全不实现父类的所有抽象方法,但此时子类必须声明为抽象类。

三、接口(接口是抽象方法和常量值的集合)

1、实现方式(通过interface)

4月4日星期二_第2张图片

2、特点

(1)成员变量默认都是public static final类型(可省略),必须被显示初始化,即接口中的成员变量为常量。

(2)接口中的方法默认都是public abstract类型(可省略),没有方法体。

(3)接口中没有构造方法,接口不能被实例化。

(4)一个接口不能实现(implements)另一个接口,但它可以继承(extends)多个其他的接口。

(5)Java接口必须通过类来实现它的抽象方法。

(6)当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类。

(7)一个类只能继承一个直接的父类,但可以实现多个接口,间接实现了多继承。

(8)如果一个类既要继承父类,又要实现某接口,那么在编写格式上要先继承父类,再实现接口。

你可能感兴趣的:(java)