继承概念:
1、继承是面向对象的三大特征之一
2、被继承的类称为父类(超类),继承父类的类称为子类(派生类)
3、继承是指一个对象使用另一个对象的属性和方法
4、通过继承可以实现代码重用
继承的语法:
//父类
class Person{
String name;
String sex;
public void eat(){
System.out.println("学会了吃饭");
}
}
//子类
class Student extends Person{
int chengji;
public void study(){
System.out.println("我能学习");
}
}
语法就是子类中的"extends"关键字。
继承的限制:
1、Java只能实现单继承,也就是一个子类只能有一个父类
2、允许多层继承,即:一个子类可以有一个父类,一个父类还可以有其他父类
3、继承只能继承非私有的属性和方法
4、构造方法不能被继承
子类实例化过程中的规定:
子类在实例化的时候一定要先调用一次父类的构造方法,这是一个规定,可能会出现一下几种情况:
1、父类中有默认的构造方法Person();无参数的构造方法
//父类
class Person{
protected String name;
protected String sex;
private String daqiu;
public Person(){
System.out.println("父类");
}
public Person(String name,String sex){
this.name = name;
this.sex =sex ;
}
public void eat(){
System.out.println("学会了吃饭:"+name);
}
}
//子类
class Teacher extends Person{
String teach;
Teacher(){
System.out.println("实例化一个老师");
}
public void teach(){
System.out.println("老师");
}
}
这种情况下Teacher t = new Teacher(); ,实例化一个子类老师类的时候,会默认调用父类中的无参数构造方法。这样就符合原则子类实例化的时候必须先调用父类构造方法。
2、父类中没有无参数构造方法
//父类
class Person{
protected String name;
protected String sex;
private String daqiu;
public Person(String name,String sex){
this.name = name;
this.sex =sex ;
}
public void eat(){
System.out.println("学会了吃饭:"+name);
}
}
//子类
class Teacher extends Person{
String teach;
Teacher(){
super("胡博君","男");
System.out.println("实例化一个老师");
}
public void teach(){
System.out.println("老师");
}
}
注意:super和this其实意义很接近,super属于父类对象,this属于当前对象;this()表示本类构造方法、super()表示父类构造方法;super表示的父类构造方法只能写在子类构造方法中的头一行,这样才能保证先执行父类构造方法。
欢迎大家收看我的在线视频:
http://v.youku.com/v_show/id_XODQ1NjU0NDc2.html 这是其中的一个视频连接,大家可以拖动到优酷视频下方,订阅我的账号,因为以后我会有更多视频免费提供
百度搜索:输入Fcs_D调的码农 ,或者输入"胡博君"就能看到我的很多视频
或者加我的微信号:fcsboy 我可以及时通过微信通知你们
QQ学习群:237053693