继承:
继承是事物之间的所属关系,是从已有的类(父类)中构建出新的类(子类),目的是为了代码重用,公共的代码放到一个单独类之中,让其他的类继承这个单独的类.单独的这个类里面包含的属性和方法都自动的被新的类支持进去,新的类可以做一些根据自己特色的扩展.
class 子类 extends 父类{
}
- 使用extends指定父类
- java中一个子类只能继承一个父类
- 子类会继承父类所有public的字段和方法
- 对于父类的private的字段和方法,子类是无法访问的
- 子类的实例中,也包含着父类的实例,可以使用super关键字得到父类实例的引用
class Animal{
public String name;
public Animal(String name){
this.name=name;
}
public void eat(String food){
System.out.println(this.name+"正在吃"+food);
}
}
class Cat extends Animal{
public Cat(String name){
//使用super调用父类的构造方法
super(name);
}
}
public class Test{
public static void main(String[] args){
Cat cat=new Cat("圆圆");
cat.eat("鱼");
}
}
如果把name的public 改为private,那么此时的子类就不能访问了
protected关键字
通过上面我们可以发现,如果把字段设为private,子类就不能访问,但是如果设为public就违背了我们封装的初衷,因此最好的就是设为protected
protected对于同一个包中的同一个类,同一个包中的不同类,不同包中的子类都是可以的(即包外不能使用,子类除外)