包
包是组织类的一种形式,使用包的目的是保证类的唯一性
当你有两个同名的类就会产生问题,而我们将它们放入不同的包中就会解决这个问题
导入包中的类
在java中,本身就提供了许多类供我们使用,例如:
public class Test {
public static void main(String[] args) {
java.util.Date time = new java.util.Date();//实例化一个对象,得到一个毫秒级别的时间戳
System.out.println(time.getTime());//
}
}
可以使用java.util.Date
这种方式引入java.util
这个包中的Date
类,这种方式比较繁琐,可以使用import
语句导入包,这样只需要写类名就可以。但是当我们导入的两个包中有同名的类,就会出现冲突的情况,在这种情况下最好显式的导入类名。
静态导入
使用import static
可以导入包中的静态方法和字段
import static java.lang.System.*;
public class Test {
public static void main(String[] args) {
out.println("静态导入");
}
}
使用静态导入,可以更方便写一些代码。
包的访问控制权限
如果某个成员不包括public等关键字默认为包访问权限
这个包中的内部类可以访问,不能在包外访问。
继承
在java中我们用类来抽象现实生活中的一类事物,但大多数的时候这些事物都不是分离的,它们之间存在着一定的联系。
被继承的类被称为父类,基类或者超类,继承的类称为子类,派生类。子类会继承父类的字段和方法,可以实现代码重用的效果
语法规则
基本语法
class 子类 extends 父类{
}
- 使用extends来指定父类
- 在java中一个子类只能继承一个父类
- 子类会继承父类所有的public字段和方法
- 父类中private的字段和方法不能被子类继承
- 子类的实例中也包括着父类的实例,可以通过super关键字得到父类实例的引用
class animal{
String name;//父类的字段,当我们改为private权限时,子类就不能访问
int age;
public animal(String name,int age){
this.name = name;
this.age = age;
}
public void eat(){
System.out.println(name+"正在吃");
}
}
class dog extends animal{
public dog(String name,int age) {
super(name,age);//实施子类的构造方法时要先调用父类的构造方法
this.name = name;
}
public void eat(){
System.out.println(name+"正在吃fan");
}
}