一.继承的意义
继承就是从已有的类派生出新的类。
继承的好处是,当我们写的好几个类中有共同的特征或者动作的时候,就可以把这些相同的部分放到一个父类当中让其他类共享。如此一来,就可以避免重复冗余的代码,提高系统的复用性,使得整个软件更加易于维护、易于理解。
二.父类和子类
B从A派生,也称作B继承自A。
A称为父类,B称为子类。
java语法:
class Child extends Father{
//子类内容
}
继承的特点:
1.子类不是父类的子集,子类一般拥有比父类更多的数据域和方法。
2.父类中的private数据域在子类中不可见,不可直接使用。
3.继承关系本质上是“是一个”的关系。B继承自A,则B和A必然存在“B是一个A”的关系。例如:三角形类、长方形类、圆形类都继承自图形类,三角形是一个图形,长方形是一个图形,圆形是一个图形。
4.java只能单继承不能多继承,一个子类只能有一个父类。
三.super关键字
super表示当前类的父类。
适用场合:
1.调用父类的构造方法
2.调用父类的方法(当子类已经重写该类时)
调用父类构造器的具体java实现:
super();
或
super(参数列表);
super语句必须是子类构造方法的第一条语句。不可以在子类中调用父类的构造方法名来调用父类构造方法。父类的构造方法不被子类继承。调用父类的构造方法的唯一途径:使用super关键字。如果子类中没有显示调用,编译器就自动将语句 super();作为子类构造方法的第一条语句。
调用父类的方法的具体java实现:
super.方法名(参数列表);
四.this关键字
this关键字表示当前类。
常用情况:
1.this();调用当前类默认构造方法
2.this(参数列表);调用带参构造方法
3.方法内的局部变量与对象的数据域变量同名,如:
public class Person{
String name;
public setName(String name){
this.name=name;
}
}
五.final关键字
由final修饰的基本类型或者引用类型,该变量里面存放的值不能改变。final 修饰属性,声明变量时可以不赋值,而且一旦赋值就不能被修改了。对 final 属性可以在三个地方赋值:声明时、初始化块中、构造方法中,总之一定要赋值。
如final int num=100;那么num的值就不能再改变,一直为100。如果final修饰的是引用类型,那么就代表它里面的地址值不能改变(不是地址值指向的数据不能变)。如final Person p=new Person(“林子衿”);那么p就不能被重新赋值(p里面地址值不能变),但是可以对地址指向的值进行修改,如p.setName("林子卿")。
final修饰类中的方法的时候,它可以被继承,但是继承之后不能重写。
final修饰类的时候,该类不能被继承。