Java基础——接口和抽象类
接口(interface)
什么是接口?
接口时抽象方法的合集。接口不可以被直接被实例化。
为什么要使用接口?
- 为了扩展。Java不支持多继承,但是通过接口就可以实现“多继承”
- 制定规则。接口就是规则,规定了一个类必须有哪些方法。领导制定规则,底下的程序员只需实现接口就制定需要有哪些方法了。
接口使用的注意事项?
- 接口属性默为public static fianl
- 接口方法默认为public abstract
- 接口中中静态方法必须要有方法体
- 接口不能直接被实例化(必须实现方法)
接口被实现以后可以被实例化
1 public interface Interface02 {
void method2_1();
} Interface02 interface02 = new Interface02() {
@Override
public void method2_1() { }
};
interface02.method2_1();
什么是抽象类?
抽象类:类中没有包含足够信息来描述一个具体对象。
抽象和普通类一样具有成员变量,成员方法,构造方法等。
为什么要使用抽象类?
使用抽象类可以定义一个不确定的某些具体方法内容的类。
抽象类的使用注意事项?
- abstract可以修饰类和方法
- 被abstract修饰的类为抽象类。
- 被abstract修饰的方法为抽象方法。
- 抽象类中没有抽象方法依然是抽象类,还是不能被直接实例化需要被继承,然后通过子类实例化
- 抽象类中既可以有抽象方法也可以有非抽象方法。
public abstract class AbstractClass02 {
void method2_1(){ }
void method2_2(){ }
void method2_3(){ } - abstract不能和private、final、static连用。可以和protected连用。
5. 接口必须实现接口中所有的方法
public abstract class AbstractClass02 {
void method2_1(){ }
void method2_2(){ }
void method2_3(){ }
abstract void method2_4(); } abstract class Test03 extends AbstractClass02{ }
接口与抽象类的相同点和区别?
相同点:
- 都是抽象的,不能直接实例化。
区别:
- 抽象类可以有普通成员变量,接口只能由类变量
- 抽象方法可以包含普通带方法体的方法。接口只有静态方法包含方法体。
- 接口可以多继承,抽象方法不可以
- 实现接口的类必须实现所有方法。抽象类可以不实现所有方法,定义一个新的抽象类就行了。
Java基础——接口和抽象类的更多相关文章
- Java基础接口和抽象类区别(二)
抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: 抽象方法必须用abstract关键字进行修饰.如果一个类含有抽象方法,则 ...
- java基础——接口与抽象类的区别
(1)首先接口和抽象类的设计目的就是不一样的.接口是对动作的抽象,而抽象类是对根源的抽象. (2)对于抽象类,一个类只能继承一个抽象类.但是一个类可以同时实现多个接口. (3)接口是公开的,里面不能有 ...
- Java基础--接口和抽象类的区别
任何不谈使用方法的空理论都是耍流氓 使用场景 · 如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类吧(Java1.8中接口也可以这么做了) · 如果你想实现多重继承,那么你必须使用接口 ...
- 慢慢人生路,学点Jakarta基础-深入剖析Java的接口和抽象类
在java面向对象编程的,抽象类和接口始终存在有疑问的地方,因为两者太多相似有太多不同,在刚开始学习的时候经常弄的不对,使用情景搞混,今天来总结之前学习Java中接口和抽象类的问题. 抽象类 了解:只 ...
- Java中接口和抽象类的比較
Java中接口和抽象类的比較-2013年5月写的读书笔记摘要 1. 概述 接口(Interface)和抽象类(abstract class)是 Java 语言中支持抽象类的两种机制,是Java程序设计 ...
- 深入理解Java的接口和抽象类(转)
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...
- 深入理解Java的接口和抽象类
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...
- [转载]深入理解JAVA的接口和抽象类
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...
- 深入理解Java的接口和抽象类 _摘抄
http://www.cnblogs.com/dolphin0520/p/3811437.html 原文 深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可 ...
随机推荐
- Disconnected from the target VM, address: '127.0.0.1:56577', transport: 'socket'
Disconnected from the target VM, address: '127.0.0.1:56577', transport: 'socket' Disconnected from t ...
- 内网端口映射+dnslog
以前的DNSLOG部署在公网上也即自己的服务器上,产品依赖个人的环境不是很好.于是做了修改. 框架 细节 1)A域名的域名服务器指向B域名 ns0.B.com ns1.B.com 2)B域名的两个ns ...
- hdu5183Negative and Positive (NP))——手写Hash&&模板
题意:问是否存在一段区间其加减交错和为K. 显然,我们可以用set保存前缀和,然后枚举一个端点查找.具体的 若在st1中查找 $t$,为 $sum-t=-k$,在st2中则是 $sum-t=k$. 注 ...
- python--第四天练习题
#1.写函数,利用递归获取斐波那契数列中的第 10 个数,并将该值返回给调用者. def rec(a,b,dep=1): c = a + b if dep == 10: return c return ...
- 006_linuxC++之_引用
1. 什么是“引用”?申明和使用“引用”要注意哪些问题? 答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同.申明一个引用的时候,切记要对其进行初始化.引用声明 ...
- 016_编写脚本快速克隆 KVM 虚拟机
#!/bin/bash#本脚本针对 RHEL7.2 或 Centos7.2#本脚本需要提前准备一个 qcow2 格式的虚拟机模板,名称为/var/lib/libvirt/images/.rh7_tem ...
- ORM SQLAlchemy - 对象关联
>>> from sqlalchemy import Column, Integer, String >>> class User(Base): ... __tab ...
- Java 类加载
类的生命周期 类的生命周期是从class文件到类加载 开始.类卸载结束. https://gitbook.cn/books/5cb844a55f75cc777e4c2320/index.html
- 网络文件共享服务—vsftpd服务
文件传输协议(FTP) 文件传输协议:File Transfer Protocol是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式.它属于网络传输协议的应用层. 服务器端:vsftpd ...
- How To Display Variable Value In View?
How To Display Variable Value In View? There are several ways. For example simply using @ like this: ...