Java 抽象类和接口

1.抽象类

  当父类的某些方法需要声明,但不确定怎么实现时,可以将其声明为抽象方法,这个类就是抽象类。

  翻译过来就是说父类的一个方法自己不知道怎么实现,而是需要同时被多个子类分别重写时,可以将这个方法声明为抽象方法(类中有抽象方法时,必须将该类也声明为抽象类;抽象类不一定要包含抽象方法

可能有同学要说了,还是太模糊啦~~

举个例子喽~~~

这是父类,cry()方法就是抽象方法,需要注意的是抽象方法没有方法体

子类cat和dog重写了cry()方法

下面是一些重要的细节~~~

1.抽象类不能被实例化,抽象类不一定要包含抽象方法且可以有普通方法

抽象类A不能创建对象,new  A()会报错

2.如果一个类继承了抽象类,它必须实现抽象类的所有抽象方法,除非它自己也声明为抽象类

F和G要继承抽象类E,F声明为了抽象类,G继承了E的所有抽象方法

3.抽象方法不能使用private、final、static来修饰(和重写违背)

子类要继承,而这些关键词和重写是相违背的

4.Abstract只能修饰类和方法,不能修饰其他

5.抽象类的本质还是类,可以有任意成员(非抽象方法、构造器、静态属性等)

以上就是抽象类啦~~~

2.接口

 接口就是将一些没有实现的方法封装到一起,某个类要使用的时候,在根据具体的情况把这些方法写出来。

语法:

interface 接口名{

//属性

//方法

}

下面就是一个接口,接口中的抽象方法可以省略abstract

一个类通过implements 来实现一个接口,如下,A实现了接口AInterface,继承接口的类必须实现接口的所有抽象方法

注意Jdk8.0后接口中可以有默认方法,但需要使用default关键字;可以有静态方法

以上就是接口的使用方法啦,那什么时候用接口呢~~~

例如,经理要开发一个软件,为了方便管理可以定义一些接口将任务分配下去,由程序员具体实现。三个程序员编写三个类,分别完成对不同数据库的连接。

这是接口

这是一位程序员通过实现接口对mysql数据库连接的实现,其他同理

以下是接口的注意细节:

1.接口不能被实例化

2.接口中的方法是public 方法,接口中的属性只能是final,而且是public static final 修饰符

IB.n1可以实现就说明n1是static

IB.n1=30 报错 就说明为final

3.抽象类实现接口时,可以不实现接口的抽象方法(如果该类实现了接口中的部分方法时,还有部分方法没有实现,没有实现的部分方法继续以抽象方法的形式存在该类中,则该类为抽象类。这样做的目的是:当另一个类继承这个抽象类时,可以通过这个抽象类达到只实现接口中部分方法的目的

4.一个类可以实现多个接口,接口之间可以相互继承

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值