一些类中有着相同的方法和属性,为了不再去每次重复定义这些重复的属性和方法,所以出现了继承这个功能,将那些重复的属性和方法提取出来,定义为一个类,称之为父类,
当想要用到这些属性和方法的时候,就继承它,就不需要重新在子类中定义这些属性和方法了.
语法:
class 子类 extends 父类 { //子类的成员变量定义 //子类的成员方法定义 }
在java中,一个子类只能继承一个父类,不支持多继承.但是支持多层继承
比如:
A类继承B类;B类继承C类
这样A类就是B类和C类的子类了.
但是,A继承B,C;这样是不行的
子父类中成员变量的特点(想在子类中调用父类的方法或成员变量)
继承带来的好处就是提高了代码的复用性、继承让类与类或者说对象与对象之间产生了关系.
如果子类中出现了与父类中同名的成员变量,如果子类要访问父类中的成员变量,必须使用关键字super来完成.
super用来表示当前对象中包含的父类对象空间的引用.
class Person{ int num=10; } public class Demo1 extends Person{ int num=20; public void printNum() { System.out.println(num); System.out.println(super.num);//想调用父类的成员变量或者方法的时候使用super关键字.
//同样,想调用父类的构造方法时,和this(参数)同样,使用super(参数) } public static void main(String args[]) { Demo1 demo=new Demo1(); demo.printNum(); } }
运行结果: 20
10
子父类中成员方法的特点:
在程序通过对象调用方法的时候,会先在子类中寻找是否有对应的方法,如果在子类中寻找到,就会执行子类中的方法,没有寻找到就会去执行父类中相应的方法.
当子类中出现和父类一模一样的方法时,会出现覆盖操作,也被称为override重写、覆写.
子父类中构造方法的特点:
在创建子类对象的时候,会先加载父类,调用父类的构造方法,所以子类的构造方法中会有一行隐式的super语句来调用父类的构造方法.
如果想要调用父类的构造方法:
super(参数列表);
this()和super()语句只能定义在构造方法的第一行,初始化动作要先执行
课后习题
1、super关键字的作用是什么?
super关键字用来表示当前对象对包含的父类对象空间的引用.
可以用他来调用父类的成员变量和成员方法.调用方法和普通成员方法时,直接super.成员变量方法名
当想要用他调用父类构造方法的时候:super(参数列表).
2、类的继承的好处是什么?
提高代码的复用性,使许多需要重复定义的属性和方法不需要多次重复定义,只需要将这些需要重复定义使用的属性和方法定义为一个父类,当想要使用的时候直接继承父类就行.还可以重写父类的方法以增加子类的功能