深入java抽象类和接口 -ag凯发k8国际
目录:
1.抽象类
2.接口
3.抽象类和接口的区别
(1)抽象方法:
抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:
abstract void a();抽象方法必须用abstract关键字进行修饰,如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,
(2)抽象类.
abstract class a{abstract void cun(); }注意事项:
1.抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。
2.如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。
3.抽象类不能用来创建对象;
4.不能用抽象类创建对象,但是抽象类有构造器
5.外部抽象类不能用static修饰但是内部抽象类可以用static修饰
6.抽象类可以继承抽象类也可以实现接口
7.外部抽象类不能用static
有可能有的小伙伴就会疑惑了
外部抽象类不能用static那么内部抽象类就行?
回答是yes
例子:
卧槽****还能这么玩
当然可以
当内部的抽象类被声明成静态的时,就相当于一个外部抽象类,就可以用extends 外部类.内部类继承了
(1)定义一个接口的形式
interface aaa{}(2)接口的注意事项:
1.接口中的变量会被隐式地指定为public static final变量
2.方法且只能是public abstract方法,并且接口中所有的方法不能有具体的实现,也就是说,接口中的方3.接口可以多继承
4.一个类可以实现多个接口
(3)关于接口的继承和实现的实例:
package untl1; public class aaa implements ddd,eee{//注意实现多个接口的格式public void bbb(){system.out.println("bbb");}public void ccc(){system.out.println("ccc");}public void ddd(){system.out.println("ddd");}public void eee(){system.out.println("eee");}public static void main(string[] args) {} } interface bbb{void bbb();} interface ccc {void ccc(); } interface ddd extends ccc,bbb{//这里可以继承多个接口void ddd(); } interface eee {void eee(); }1.抽象类可以有构造方法,但接口没有
2.抽象类可以有普通的成员变量,接口中没有普通成员变量
3.抽象类可以有非抽象方法接口全是抽象方法
4.抽象类的抽象方法的访问权限可以是非private的另外三个但是接口只能是public
5.抽象类中可以包含静态方法接口中不能包含
6.一个类只能继承一个抽象类,一个类可以实现多个接口
7.抽象类和接口都能包含静态成员变量但接口里边只能是public static final,而且接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;
总结
以上是ag凯发k8国际为你收集整理的深入java抽象类和接口的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: