包
包(package)是组织类的一种方式。
使用包的主要目的是保证类的唯一性。
java中已经提供给我们很多现成的类供我们选择,例如可以使用
import java.util.Data;
import java.util.Scanner;
这种方式来导入包中的某类。或者可以使用
import java.util.*;
直接导入java.util中的所有类。
but!最好用哪一个导入哪一个类。
import static可以导入包中的静态方法和字段。
继承
创造类主要是为了方便抽象现实中的一些事物(包含属性和方法),而有些客观事物之间本身就有一定的关联关系,那么在表示成类和对象的时候也会存在一定的关联。
为了防止出现大量的功能相似的冗余代码,此时就需要使用继承来达到代码重用的效果。
基本语法:
class 子类 extends 父类 {
}
- 使用extends来指定父类,也可以将extends理解为扩展
- 一个子类只能继承一个父类
- 子类会继承父类的所有public的字段和方法
- 当父类是用private修饰的字段和方法,子类是无法访问的
- 子类的实例中也包含父类的实例,可以使用 super 关键字来得到父类实例的引用
//父类
class Animal {
public String name;
public Animal(String name){
this.name = name;
}
public void play(String game){
System.out.println(name + "正在玩" + game);
}
}
//子类
class Pig extends Animal{
public Pig(String name){
//使用super来调用父类的构造方法
super(name);
}
}
//子类
class Dog extends Animal{
public Dog(String name){
super(name);
}
public void sleep(){
System.out.println(this.name + "正在睡觉觉");
}
}
public class Test {
public static void main(String[] args){
Pig pig = new Pig("常威");
pig.play("打来福");
Dog dog = new Dog("来福");
dog.sleep();
}
}
访问权限:(重中之重)
- private:类内部可以访问,类外部不能访问
- 默认:类内部可以访问,同一个包中的类可以访问,其他类不能访问
- protected:类内部可以访问,子类和同一个包中的类可以访问,其他类不能访问
- public:类内部和类的调用者都能访问
多层继承:
子类还可以进一步派生出新的子类,但最好不超过三层
class Animal{
...
}
class Dog extends Animal{
...
}
class OrangeDog extends Dog{
...
}
final 关键字
final关键字,修饰一个变量或者字段的时候,表示常量,不可修改
final int a = 10;
a = 20; //编译出错
final 关键字也能修饰类,此时被修饰的类就不能被继承
final public class Animal{
...
}
public class Cat extends Anima