package关键字
- 为了喊好的实现项目中类的管理,提供包的概念
- 使用package来声明类或接口所属的包,声明在源文件的首行
- 包属于标识符,需要遵循标识符的命名规范
- 每"."一次,就代表一层文件目录
- 同一个包下,不可以命名同名的类或接口
import关键字
- import : 导入
- 在源文件中显式的使用import结构导入指定包下的类或接口
- 声明在包的声明和类的声明之间
- 需要导入多个结构,并列写出即可
- 使用“XXX.*”,表示可以导入XXX包下的所有结构
- 如果使用的类或java.lang包下的,则不需要import(核心类库)
- 使用的类或接口是本包下的,则不需要再导入可以省略
- 如果在源文件中使用了不同包下的同名类,则必须至少有一个类需要以全类名的方式来显示( 全类名 包名+类名)
- 使用"XXX.*"的方式表明可以调用XXX包下的所有结构,但是如果使用的是XXX子包下的类或接口,则需要import XXX.子包名
- import static 可以导入指定类或接口中的静态结构 (属性 或 方法)
继承性(extends)
继承的优点
- 减少代码的冗余,提高了代码的复用性
- 便于功能的扩展
- 为多态的使用提供了前提
继承的格式 : class A extends B {}
- A : 子类,派生类,subclass
- B : 父类,超类,基类,superclass
- 一旦子类A继承了父类B以后,子类A就获取了父类B中声明的结构,属性和方法
- 当父类声明为private的属性和方法,子类继承父类以后,子类仍然获取了父类中private的结构
只是因为封装性的原因,使得子类不能直接调用父类的结构 - 子类继承父类以后,还可以声明自己特有的属性或方法,实现功能的拓展
继承性的规定
- 一个类可以被多个子类继承
- -个类只能有一个父类
- 子父类是相对的概念
- 子类直接继承的父类称为: 直接父类 ,子类间接继承的父类称为:间接父类
- 子类继承父类以后,就获得了直接父类和间接父类中声明的属性和方法
Object
- 如果没有声明一个类的父类,则此类都继承与java.lang.Object;
- 所有的java类都直接或间接的继承与java.lang.Object;
import java.util.Arrays;
import static java.lang.System.*;
public class Test {
public static void main(String[] args) {
String str = Arrays.toString(new int[] {1,2,3,4});
out.println(str);
Person p = new Person();
p.eat();
p.sleep();
Stduent s = new Stduent();
s.eat();
s.study();
s.sleep();
s.sky();
SuperMan ss = new SuperMan();
out.print(ss.toString());
}
}
public class SuperMan {
public void sky() {
System.out.println("sky");
}
}
public class Person extends SuperMan{
String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void eat() {
System.out.println("eat");
}
public void sleep() {
System.out.println("sleep");
}
}
public class Stduent extends Person{
String major;
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public Stduent() {
}
public Stduent(String name, int age, String major) {
this.name = name;
this.setAge(age);
this.major = major;
}
public void study() {
System.out.println("study");
}
}