date: 2018/4/8 1:21:31
抽象类和接口文档整理
文章转载苏鹏
1.包(package)的作用:对类进行分类整理
---1.1.按功能分类 界面、控制跳转、业务处理、数据访问、工具类、数据模型。。。
---1.2.按业务模块分类 登录、注册、列表展示、详细信息、支付、订单。。。。
2.不在同一个包中的类,在使用前都要先导入 -- import
---2.1.导入所需的类
import java.util.Scanner;
---2.2. 导入包内所有类
import java.util.*;
---2.3.不导包就要写包名+类名
java.util.Scanner scanner = new java.util.Scanner(System.in);
---2.4.子包中的类需要导入吗?
---2.5.java.lang 包下的类默认全部导入
import java.lang.*
3.类的修饰符
---3.1.public(公共的):
将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类。
---3.2.abstract(抽象的):
将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现。
---3.3.final(最终的):
将一个类声明为最终类, 表示他不能被其他类继承。
4.访问修饰符(方法和属性)---定义可见性
---4.1.public(公共的): 大家随便用
---4.2.private(私有的): 只有我自己能用, 其他谁都不给用, 包括儿子
---4.3.protected(保护的): 我家里人和已经分家的儿子能用, 别的照样不给用 。
---4.4.无修饰符 (默认的):默认的修饰符,只有没有分家的家人才能用, 已经分家的儿子也不给用。
关键字 同一个类中 同一个包中 子类中 其他包中
private √
默认 √ √
protected √ √ √
public √ √ √ √
5.其他功能性的方法修饰符
---5.1.final,static,abstract
6.抽象类
---6.1.抽象类和抽象方法必须用abstract关键字修饰
格式: abstract class 类名{} //抽象类
public abstract void eat(); //抽象方法
---6.2.抽象方法只有方法签名,没有方法体 (没有大括号)
---6.3.抽象类不一定有抽象方法, 抽象方法一定存在于抽象类中
---6.4.抽象类不能被实例化, 需要子类或孙类去实现抽象方法
---6.5.父类只定义有什么功能,具体的功能需要子类自己实现
---6.6.抽象类的子类
子类实现了父类的全部抽象方法,那子类就可以不是抽象类
子类没有实现全部的抽象方法,那子类也必须是抽象类
7.接口 interface (特殊的抽象类)
---7.1.定义一个接口需要使用interface关键字
接口语法格式: public interface 接口名{} //接口没有class关键字
---7.3.接口的成员列表只能包含抽象方法及常量
---7.4.接口的所有方法默认都是public abstract 的
---7.5.接口的所有属性都默认是 public static final 的(都是静态常量)
---7.6.常量必须在接口中定义的时候就初始化。
---7.7.常量的命名规范: 全部字母大写,单词之间用 '_' 隔开
---7.8.接口没有构造方法,也就是说,接口和抽象类一样不能创建自己的对象
---7.9.一个类通过 implements 关键字去实现一个或多个接口
格式: public class 类名 implements 接口1[,接口2...]
---7.10.接口可以继承接口,和类不同的是,接口继承其他接口的时候,是可以多继承的
格式: public interface 子接口 extends 父接口1[,父接口2]