抽象类&接口&多态&各种类

抽象类和接口对比

抽象类

特点:

abstract修饰,只能被单继承

abstract修饰抽象方法,只有方法名字,不能有实现(方法体)(普通方法可以有方法体【即可以有方法实现】)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-79xyth9f-1608388534975)(C:\Users\14611\AppData\Roaming\Typora\typora-user-images\image-20201128224838754.png)]

不能new抽象类,只能靠子类实现,他只是一种约束!

抽象类中可以有普通方法

抽象方法必须写在抽象类中,抽象方法必须是Public的;

它是对抽象(思想)的抽象!

继承了他的子类,必须实现他的抽象方法,除非子类也是抽象类(子类的子类还是要实现父亲和爷爷的抽象方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Js2Eifvu-1608388692143)(C:\Users\14611\AppData\Roaming\Typora\typora-user-images\image-20201128224838754.png)]

问题:

存在构造器吗?

存在,不能直接new ,只能由非抽象子类调用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3j7ybAOv-1608388534979)(C:\Users\14611\AppData\Roaming\Typora\typora-user-images\image-20201128232849518.png)]

存在的意义?提高开发效率

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZTO3MVMi-1608388534982)(C:\Users\14611\AppData\Roaming\Typora\typora-user-images\image-20201128220814471.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lRkCiIGd-1608388534984)(C:\Users\14611\AppData\Roaming\Typora\typora-user-images\image-20201128220959262.png)]

接口

只有规范,自己无法写方法,他是专业的约束,约束和实现分离

二者对比:接口是抽象类的集合,他比抽象类极端,只允许有方法定义,不能有实现,方法默认是抽象方法,抽象类可以有普通方法,也可以有构造函数(由子类调用),接口没有构造函数

作用:

约束

定义一些方法,让不同的人实现~10人–> 1接口

接口中的所有定义都是抽象的 默认 public abstract

接口不能被实例化,==接口中没有构造方法==

implements可以实现多个接口,从而实现伪多继承

必须要重写接口中的方法~

在JAVA编程语言中是一个抽象类型,是抽象方法的集合

一个类通过实现接口的方式,从而来继承接口的抽象方法。(接口只可以被实现,不能被继承

接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。

类描述对象的属性和方法。接口则包含类要实现的方法。

除非实现接口的类是抽象类,否则该类要重写接口中的所有方法。

接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F8KhsQev-1608388534985)(C:\Users\14611\AppData\Roaming\Typora\typora-user-images\image-20201128222002487.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6DtsqAkd-1608388534987)(C:\Users\14611\AppData\Roaming\Typora\typora-user-images\image-20201128221632011.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nxelOgbb-1608388534988)(C:\Users\14611\AppData\Roaming\Typora\typora-user-images\image-20201128221730277.png)]

继承多态对比

一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。

多种类

外部类、内部类

(可以调用外部类的属性和方法(包括私有))

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F2KMu3Hv-1608388534989)(C:\Users\14611\AppData\Roaming\Typora\typora-user-images\image-20201129001445749.png)]

静态内部类

拿不到非静态方法和属性(静态类先加载)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hdEREoqi-1608388534991)(C:\Users\14611\AppData\Roaming\Typora\typora-user-images\image-20201129001739318.png)]

写在类外面的类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TUG2iooG-1608388534992)(C:\Users\14611\AppData\Roaming\Typora\typora-user-images\image-20201129002235431.png)]

Java文件可以有多个类,但是只能有一个public修饰的

局部内部类(不建议)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a7yLoaGt-1608388534993)(C:\Users\14611\AppData\Roaming\Typora\typora-user-images\image-20201129002040927.png)]

匿名内部类

Java文件可以有多个类,但是只能有一个public修饰的

局部内部类(不建议)

[外链图片转存中...(img-a7yLoaGt-1608388534993)]

匿名内部类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iWndLMVQ-1608388534994)(C:\Users\14611\AppData\Roaming\Typora\typora-user-images\image-20201129002617297.png)]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值