继承、抽象类和接口

来源:互联网 发布:软件商城建设 编辑:程序博客网 时间:2024/05/02 00:13


一、继承

1、继承的概念:继承是类与类的一种关系,是一种“is a”关系(注:Java中的继承是单继承:一个类只能有一个父

类)

2、继承的好处:子类拥有父类的所有属性和方法,实现代码的复用;继承的出现让类与类之间产生了关系,提供了

多态的前提。

3、继承的使用:看父类内容,创建子类对象使用

4、方法的重写:

1)如果子类对继承父类的方法不满意,是可以重写父类继承的方法的,当调用方法时会优先调用子类的方法。

2)语法规则:返回值类型;方法名;参数类型及个数都要与父类继承的方法相同,才叫方法的重写。

5、继承的初始化顺序

1)初始化父类再初始化子类

2)先执行初始化对象中属性,再执行构造方法中的初始化

6、关键字

1)final关键字:final可以修饰类、方法、属性和变量。

final修饰类,则该类不允许被继承;

final修饰方法,则该方法不允许被重写;

final修饰属性,则该类的属性不会进行隐式的初始化(类的初始化属性必须有值)或在构造方法中赋值(但只能选其

一);

final修饰变量,则该变量的值只能赋一次值,即变为常量。

2)super关键字:在对象的内部使用,可以代表父类对象。

访问父类的属性:super.age

访问父类的方法:super.eat()

Super的应用:

子类的构造的过程当中必须调用其父类的构造方法;

如果子类的构造方法中没有显示调用父类的构造方法,则系统默认调用父类无参的构造方法;

如果显示的调用构造方法,必须在子类的构造方法的第一行;

如果子类构造方法中既没有显示调用父类的构造方法,而父类又没有无参的构造方法,则编译出错。

二、抽象类

1、Java中可以定义没有方法体的方法,该方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就

是抽象类。(抽象关键字abstract不可以和final ,private , static 关键字共存)

2、抽象类的特点:

a,没有方法体的方法是抽象方法,一定定义在抽象类中。

b,抽象类和抽象方法必须用abstract关键字所修饰。

c,抽象类不可以被实例化(不能创建对象)。为啥?因为调用抽象方法没有意义。 

d,抽象类必须由其子类覆盖掉所有的抽象方法后,其子类才可以进行实例化。否则,该子类还是一个抽象类。

3、抽象方法没有方法体以分号结束

三、接口

1、接口概念:接口可以理解为一种特殊的类,由全局常量和公共的抽象方法所组成。

2、接口定义的格式:interface 接口名{接口内容}

3、接口定义特点

a,接口用interface来定义。

b,接口中的成员都有固定的修饰符。

c,接口不能被实例化,。

d,接口必须由其子类覆盖了所有的抽象方法后,该子类才可以实例化。否则,该子类还是一个抽象类。

e,接口中的成员都是public修饰的。

4、接口的出现好处:接口可以被多实现。这就是多继承机制(一个子类继承多个父类),一个类可以实现多个接

口。

5、继承父类实现接口的语法为:


6、抽象类和接口的区别:

1:抽象类只能被继承,而且只能单继承。

接口需要被实现,而且可以多实现。 

2:抽象类中可以定义非抽象方法,子类可以直接继承使用。

接口中都有抽象方法,需要子类去实现。

3:抽象类使用的是  is a 关系。

接口使用的 like a 关系。 

4:抽象类的成员修饰符可以自定义。

接口中的成员修饰符是固定的。全都是public的。

 

 

 

 

 

 

 

0 0
原创粉丝点击