Java入门、面向对象程序设计(二)

1、抽象类

1.1 抽象方法
为什么需要定义抽象方法:当类中的某个操作无法具体实现时,而在不同的子类中对这种操作的实现方式不同;
定义抽象方法格式:使用abstract修饰,只有方法声明没有方法体,如:

public abstract void  XXX();

1.2 抽象类
抽象类:含有抽象方法的类必须定义为抽象类;对需要抽象的事物或者物品进行更高层级的抽象就形成了抽象类。
举个生活中的例子:比如我们可以把猫抽象成Cat类,把狗抽象成Dog类;也可以进行更高级的抽象,把猫和狗抽象成Pet宠物类,由于宠物类无法具体化,则可以定义为抽象类。
抽象类的特点:使用abstract修饰的类为抽象类,抽象类中可以没有抽象方法,但是含有抽象方法的类必须定义为抽象类;
一个子类继承了抽象类,需要重新抽象类的抽象方法;如果没有重新所有的抽象方法,则子类也需要定义为抽象类;
抽象类不能实例化对象,抽象类的引用,需赋值子类对象或匿名内部类对象;
抽象类中含有构造方法,可以同普通类一样,含有实例变量、实例方法、静态变量、静态方法等;
abstract和final不能一起使用;

2、接口

2.1 概述
接口就是功能的分装,用来扩展类的功能。

2.2 接口的定义和实现
定义接口:[修饰符] interface 接口名 {
功能用方法表示,接口中方法默认public abstract修饰
}
实现接口:[修饰符] class 类名 implements 接口 {
类实现了接口,需要重新接口中所有的抽象方法(如果没有重写所有的抽象方法,则类也需要定义为 抽象类)
}

2.3 接口说明
(1)、接口就是功能的封装,功能用方法表示,接口中方法默认public abstract修饰;
(2)、类如果实现接口,需要重新接口中的所有方法(抽象方法),如果没有,则类也需要定义为抽象方法;
(3)、接口是一种引用数据类型,但是不能实例化对象,接口引用,需赋值它的实现类对象或者匿名内部类对象,通过接口引用调用抽象方法时,实际执行的是实现类对象的方法,称为接口多态;
(4)、接口中的方法(抽象方法),默认使用public abstract 修饰,字段默认使用public static final修饰;JDK 8 新增了两个修饰方法的,static、default;

2.4 接口与抽象类的区别
(1)、都可以定义抽象方法;接口中是默认使用public abstract修饰、抽象类中需要定义public abstract修饰符
(2)、都不能实例化对象
(3)、接口是功能的封装,解决对象能干什么;抽象类是对事物的抽象,解决对象是什么
(4)、接口支持多继承;抽象类只允许单继承
2.5 接口的应用
可以解决类的多继承问题
如:在这里插入图片描述

2.6 面向接口的编程
(1)、接口比较灵活,一个类在继承父类的同时,可以实现多个接口;
(2)、降低类的耦合性,提高程序的可扩展性;
(3)、可以使项目分层,实现代码的复用性;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值