抽象类和接口

抽象类和接口的理解

抽象类(abstract class):

public abstract class Demo1{}

抽象类中的抽象方法需要被继承(extends)重写,实现方法的实例化;
抽象类可以存在构造器,抽象方法和具体方法;修饰符为public、default、protected和private;可以定义成员变量;

接口(interface):

public interface Demo2{}

接口中的方法均为默认的public抽象方法,需要实现(implements)重写进行实例化;接口中不能定义构造器;定义的成员变量均为常量;
DAO就是数据库或其他持久化机制提供抽象接口的对象,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口,在逻辑上该类对应一个特定的数据存储。

比如springBoot的mapper接口和实现数据存储的mapper.xml

拓展:
a、接口可以继承接口,可以多重继承,抽象类可以实现接口,抽象类可继承具体类也可以继承抽象类。

b、重写和重载
方法重写:子类继承父类并重写父类中已有的或抽象的方法,实现的是运行时的多态性;重写时,方法名和参数部分一定是相同的,访问修饰符范围要大于等于父类,因为子类重写父类方法是为了扩展父类的功能;返回值类型如果是基本数据类型和void类型,则必须相同。引用数据类型的话范围要小于等于父类。
方法重载:发生在一个类中,实现的是编译时的多态性;重载的方法为名称相同,但传参的参数类型不同、参数个数不同或者二者都不同。

重载主要体现在构造器,类中和构造器同名的方法,他们之间为重载。
构造器:方法名和类名相同,没有返回值,并且不能用void,参数可有可无。如果类中没有带参数的构造器,那我们可以使用一个隐藏的默认构造器来创建对象,如果类中有带参数的构造器,那默认的构造器就会被覆盖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值