一、抽象类
1. 使用abstract定义的类被称之为抽象类
-
- 抽象类不能够生成对象(即使用new)
- 但抽象类可以有构造函数,其在子类对象生成的时候通过子类构造函数中super调用
- 如果一个类当中包含抽象函数,那么这个必须声明为抽象类
- 如果一个类中没有抽象函数,这个类也可以被声明为抽象类(可防止被生成对象)
2. 抽象方法:只有方法的定义(返回值、函数名、参数列表),没有函数体({})的函数,如:public abstract void fun();
3. 抽象类可以被继承,通过子类复写抽象函数
二、软件包
1. 为Java类提供了命名空间,不同包中可以有相同名的类
2. 将类放置到一个包当中,打包需要使用package “包名”;
3. 编译时需要使用-d 参数,该参数的作用是依照包名生成相应的文件夹(javac -d . Test.java,'.'代表当前目录,javac用于)
4. 运行.class时需要使用命令java ”包名“+“."+”类名“
5. 包名的一般命名规范:
-
- 包名所有字母都要小写
- 包名一般是你的域名倒过来写
6. 使用其他包中的公共类时,需要使用”包名“+”."+"类名"或者使用“ import 包名”将包导入,这时可直接使用类名
三、访问权限
权限高到低public -> protected -> default -> private
- public:公共权限
- 使用public修饰符的类允许任意类(可在不同的包中)访问该类
- public类中的成员和方法是public时,可被其他类访问
- private:私有权限
- 一般修饰变量和方法,被修饰的变量和方法只能被当前的类访问(使用)
- default:包级别访问权限
- 未使用权限修饰符时即为default
- 包级别访问,同一个包中可访问
- 跨包子类无法继承(使用)父类中default权限的成员变量和成员方法
- protected:受保护权限
- 首先其拥有和default的功能,但只能修饰成员变量和成员方法
- 允许包外部的子类使用该成员