Java 包与接口、抽象类速记
来源:互联网 发布:java 如何加密 编辑:程序博客网 时间:2024/05/16 02:55
包的含义:
一个包就是一些提供访问保护和命名空间管理的相关类与接口的集合。使用包的目的是使类容易查找使用,防止命名冲突,以及控制访问。所有java包都在java和javax包层次内。
Jar包含义:
Jar包其实就是利用jar.exe工具把许多编译好的字节码文件打包成一个文件,后缀为.jar所以称作Jar包。并且通过mainfest.mf文件告诉java虚拟机哪一个是包含main方法的主类(Main-Class:主类的完成名称)。
jar.exe 打包:
在字节码所在文件夹下使用命令jar -cvmf manifest.mf jarfilename.jar com
特点:
可以直接运行。
JDK(Java Devlopment kit java开发工具包)常用包:
1、java.lang
包含一些java语言的核心类,包括String、Math、Integer、System、Thread等
2、java.awt
包含了构成抽象窗口工具集(abstract window toolkits)的多个类
3、java.applet:包含applet运行所需的一些类
4、java.io :包含能提供多种输入、输出功能的类
5、java.net 包含执行与网络相关的操作的类
6、java.util :包含一些实用的工具类,如定义系统特性、使用与日期日历相关的函数
Java中的接口:
定义:如果抽象类中所有的方法粗体内容都是抽象的,我们就可以这个类用另外一种方式来定义,也就是接口定义。
与抽象类的关系:接口是一种特殊的抽象类,这个抽象类只包含常量和方法的定义,没有变量和方法的实现。
组成:只包含常量和方法的定义,没有变量和方法的实现。
特点:可以被多重继承(java只支持单一继承),同时可以避免C++多重继承的复杂关系所产生的问题,多继承的危险性在于一类可能继承了同一个方法的不同实现
声明:public interface inter_name {}
常量特点:均有public、static、final
方法特点:均有public、abstract
实现接口实例:public abstract class MyClass implements IMsg {}
实现特点:
1、由于接口方法为public所以实现接口方法要用public修饰
2、如果某个接口没有被实现,那么类必须被声明为抽象类。
接口的意义:
java开发系统时,主体架构使用接口,接口构成系统的骨架,这样就可以通过更换接口的实现类来更换系统的实现,这称为面向接口的编程方式。
抽象类:
含义:用abstract修饰的类,同时抽象类至少有一个抽象方法。抽象类只关心子类是否具有某种功能,并不关心该功能的具体实现。
声明:abstract class ClassName {}
特点:一旦被定义为抽象类,该类就不能被实例化,只能作为派生类的基类存在。
抽象方法:public abstract void Method()
目的:为所有子类定义一个统一的接口,必须被重写,若类中包含了抽象方法,则该类必须被定义为抽象类。
注意:
1、抽象类必须使用abstact关键字修饰。抽象方法也必须用abstract来修饰。
2、抽象类不能被实例化,也就是不能用new关键字去产生对象。
3、抽象方法只需声明,而不需要实现。
4、含有抽象方法的类必须被声明为抽象类。抽象类的子类必须覆盖所有的抽象方法后才能被实例化,否则这个子类还是个抽象类。
调用父类方法:
java: super.function(args) PHP: parent::function(args) Python: super().function(args)
调用构造函数:
java; super(args) PHP: parent::contruct(args) python: super(ClassName,self).__init__(args)
- Java 包与接口、抽象类速记
- 抽象类、接口与包
- JAVA程序设计基础教程 抽象类、接口与包
- Java:接口与抽象类
- JAVA 抽象类与接口
- Java抽象类与接口
- java 抽象类与接口
- JAVA接口与抽象类
- JAVA 接口与抽象类
- java抽象类与接口
- Java接口与抽象类
- Java抽象类与接口
- java抽象类与接口
- java抽象类与接口
- java:抽象类与接口
- java 抽象类 与 接口
- Java抽象类与接口
- java 接口与抽象类
- lodash difference 函数demo
- js中必须用分号的地方——由一个题目引起的思考
- SpringMVC配置及简单应用
- git commit
- LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal
- Java 包与接口、抽象类速记
- CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052) 分析报告
- iOS基础知识6
- 颠覆式前端UI开发框架:React
- JVM 栈帧
- 大咖 | 从Ian Goodfellow到Yann LeCun,对话Quora AI大佬TOP 10
- centos下ICU4C字符集检测和转换,C++版本
- 疑难杂症:C#调用console.WriteLine()偶尔会卡死
- [RK3288][Android6.0] 系统按键驱动流程分析