什么是继承?
面向对象软件技术中的一个概念
这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用
为什么出现继承?
在现实的开发过程中,实物有共同的属性和方法。
往往把这些属性和方法提取到一个公共的类中来表示。
通过继承公共的类,来拥有这个属性和方法。
继承的优点:
减少代码量,提高了代码的效率,减少了耦合,提高了代码的复用
继承的使用
1.子类继承了父类的所有属性和方法,只不过不能调用父类的非private属性和方法
2.java中的继承只允许单继承,一个子类只能继承一个父类,但允许多层继承
继承中的构造方法
super关键字
super指父类对象,只能在继承关系的子类中进行使用
super使用
super.父类的属性
super.父类的方法
super()–>指父类的构造方法
super()调用父类的构造方法必须在子类的构造方法中代码的第一行
可以继承父类的所有吗?
不可以访问私有化(private)的属性和方法
不可以直接访问父类的构造方法
不可以访问不在同一个包中父类的属性和方法
方法的重写
在继承关系中,有时子类需要对继承的方法进行一些修改
只能子类重写父类的方法,子类重写父类的的方法(方法名称,方法参数的类型顺序个数,以及返回值类型完全一致)
final关键字
final是属性,方法,类的修饰符
当修饰变量中,就称为常量,其值不可以发生改变
当修饰方法时,这个方法不可以被重写
当修饰类时,这个类不可以被继承
案例
public class Bus extends Car{
public Bus(int site){
super();
super.setSite(site);
}
/**
* 重写
*/
@Override
public void pvb() {
System.out.println("芜湖");
}
}
public class Car {
private int site=4;
public Car(){
System.out.println("1载客量是"+site);
}
public void setSite(int site){
this.site=site;
}
public void print(){
System.out.println("2载客量是"+site);
}
public void pvb() {
System.out.println("起飞");
}
}
public class Test {
public static void main(String[] args){
Bus bus=new Bus(20);
bus.print();
bus.pvb();
}
}