目录
一、包
包 (package) 是组织类的一种方式. 使用包的主要目的是保证类的唯一性
将类将放到包中
基本规则
在文件的最上方加上一个 package 语句指定该代码在哪个包中.
如果一个类没有 package 语句, 则该类被放到一个默认包中
包的访问权限控制
如果某个成员不包含 public 和 private 关键字, 此时这个成员可以在包内部的其他类使用, 但是不能在包外部的类使用.
二、继承
继承
对共性的抽取,使用extends关键字进行处理,可以对代码重复使用
语法规则
继承对象叫做子类、派生类
被继承对象叫做父类、基类、超类
基本语法
class 子类 extends 父类 {
}
1,Java当中的继承是单继承,不能同时继承两个以上的类,包括两个
2,子类构造的同时,要先帮父类进行构造,子类帮助构造,使用构造方法
3,对于父类的 private 的字段和方法, 子类中是无法访问的
4,子类的实例中, 也包含着父类的实例. 可以使用 super 关键字得到父类实例的引用
5,如果一个类不想被继承,可以使用final修饰
class Animal {
public String name = "hello";
public int age;
protected int count;
public Animal(String name,int age) {
this.name = name;
this.age = age;
}
public void eat() {
System.out.println(name+"eat()");
System.out.println(count);
}
}
class Dog extends Animal{
public Dog(String name,int age) {
super(name,age);
}
}
class Bird extends Animal{
public String wing;
public String name;//null
public Bird(String name,int age,String wing) {
super(name,age);
this.wing = wing;
}
public void fly() {
System.out.println(super.name+"fly()"+age);
}
}
public class Text1 {
public static void main(String[] args) {
Dog dog = new Dog("haha",19);
System.out.println(dog.name);
System.out.println(dog.age);
dog.eat();
}
}
super关键字
不能出现在静态的方法中,父类对象的引用
1,super()调用父类的构造方法
2,super.func()
3,super.data
protected 关键字
刚才我们发现, 如果把字段设为 private, 子类不能访问. 但是设成 public, 又违背了我们 "封装" 的初衷. 两全其美的办法就是 protected关键字
1,对于类的调用者来说, protected 修饰的字段和方法是不能访问的
2,对于类的子类和同一个包的其他类 来说, protected 修饰的字段和方法是可以访问的