欢迎访问 生活随笔!

凯发ag旗舰厅登录网址下载

当前位置: 凯发ag旗舰厅登录网址下载 > 编程资源 > 编程问答 >内容正文

编程问答

深入java抽象类和接口 -凯发ag旗舰厅登录网址下载

发布时间:2024/10/14 编程问答 23 豆豆
凯发ag旗舰厅登录网址下载 收集整理的这篇文章主要介绍了 深入java抽象类和接口 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

目录:
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
例子:

//定义一个抽象类a abstract class a{//定义一个内部抽象类bstatic abstract class b{ //static定义的内部类属于外部类public abstract void saomethod();} }class c extends a.b{public void saomethod(){system.out.println("======saomethod方法执行了======");} } public class staticdemo {public static void main(string[] args) {a.b ab = new c();//向上转型ab.saomethod();}}运行结果: ======saomethod方法执行了======

卧槽****还能这么玩
当然可以

当内部的抽象类被声明成静态的时,就相当于一个外部抽象类,就可以用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旗舰厅登录网址下载为你收集整理的深入java抽象类和接口的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图