JAVA笔记十二

十二、面向对象-接口

1.抽象方法与抽象类

在某些情况下会希望定义这样一种类,在该类中定义了一些子类应该包含的方法,但是在类中不能给出这些方法的有意义的实现对于这类方法可以声明为抽象方法。

(1)抽象方法

概念:使用abstract修饰的方法(子类必须重写父类的抽象方法)

注意:

        抽象方法没有方法实现,即没有方法体{},只有定义

        类中如果有抽象方法,该类必须是抽象类,必须使用abstract

        对于抽象方法,abstract不能与private、static同时使用:

                如果将抽象方法声明为private,则子类中就无法重写该抽象方法

                如果方法为static方法,则该方法属于类,而不属于某个对象,从而也就无法根据实际的指向的对象调用想用的方法

(2)抽象类

概念:使用abstract修饰的类

注意:

        从语法上讲,抽象类中可以没有抽象方法,但是没有实际意义

        有抽象方法的类必须是抽象类(有抽象方法的不一定是抽象类,接口当中全部都是抽象方法)

        不能创建抽象类的对象,即不能new对象

        抽象类可以当做一种引用类型来使用,声明变量

        继承自抽象类的类,必需重写抽象类中的所有抽象方法,否则自身也使用abstract修饰,即也是抽象类

说明:抽象类只定义被其所有子类共享的一般形式,而让每个子类填充其细节。这种类确定了子类必需实现的方法

2.接口的概念和定义

接口中的方法全部都是抽象方法,不能存在实现的方法

使用interface修饰

3.接口中的属性和方法

(1)接口中所有方法默认是公有的抽象方法

隐式地标识为public、abstract,并且接口中的方法也只允许使用这两个修饰符

注意,在抽象类中必需使用abstract关键字明确指定方法为抽象方法

(2)在接口中所有变量默认为公有的静态常量

被隐式地标识为public、static、final这意味着实现接口的类不能修改它们同时还必须初始化它们

注意:接口不能new对象,但能作为一种类型定义引用变量

4.接口的实现

为了实现接口,在类定义中需要包含implements子句,然后创建接口定义的方法。

注意:

(1)实现接口的类,必须实现接口的所有抽象方法,如果只实现了部分抽象方法,该类必须声明为抽象类

(2)一个类可以实现多个接口,实现的多个接口用“,”隔开

(3)实现接口的类可以同时继承一个超类,必须是先继承后实现

说明:

接口定义了一组抽象方法,实现该接口的类需要实现这些抽象方法,从而实现接口的类就具备了接口所规定的行为(功能)

在Java中,接口可理解为对象间相互通信的协议,相当于模板

5.接口继承

接口可以通过关键字extends继承另一个接口,其语法和类继承相同但是可以多继承。如果类实现的接口继承自另外一个接口,则该类必需实现在接口继承链中定义的所有方法。

6.抽象类与接口的区别

抽象类

接口

共同点

二者都可具有抽象方法,都不能实例化,但都可以有自己的声明,并能引用子类或实现类对象

不同点

属性变量

可以

不可以,必须是初始化常量

成员方法

可以

可以,但全是抽象方法

实现策略

必须有子类继承

必须有实现类实现

扩展性

构造方法

没有

继承

单继承

多继承

抽象类中可以没有抽象方法,但是有抽象方法的类必须是抽象类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值