总结——继承
1、继承:使用继承可以减少代码的冗余,
提高编程效率,并且这也体现现实中真实存在的类与类之间的关系。
?
2、Java继承关键字与格式
?关键字:extends?
public
class 类名(子类,派生类) extends 类名(父类,基类,超类 ){?
}?
例:public class UNstudent extends Student{?
}?
在这里UNsutudent 就继承了Student类,具体就是继承了Student类中的属性以及方法。
?
注意:java的继承具有单继承的特点,即每个子类只能有一个直接父类。?
3、子类继承到父类所有的属性和方法(无论是公有的还是私有的方法)?
public class Student{?
???? public String name;?
???? public int score;
???? public void study(){
?
System.out.println("学生名字是:"+name+",获得学分是:"+score)?
}?
public void setName(String name){?
this.name=name;?
}?
}?
public class middlestudent extends Student{?
?????? //子类里面重写study方法?
?public void study(){?
Systen.out.println("大学生"+name+"要好好学习,天天向上")
public static void main(String[] args){
?
?????? UNstudent un=new UNstudent();//实例化un对象
?
?????? un.score=5;//继承父类里的公共的成员变量,用对象调用
?
?????? un.setName("张三");//继承并调用父类的方法?
?????? un.study();//调用本类重写的方法
?
?????
}?
?
}?
4、如果父类里有构造方法(有参数),则子类不能直接继承,要重新调用就要用super关键字,格式为super(参数1,参数2,...)?
//父类
?
public class Five{?
???protected double size;
?
???public Five(){?
System.out.println(“Five类无参构造”);//输出语句,看是否被调用
?}?
public Five(double s){?
size=s;System.out.println(“Five类有参构造”);//同上?
}?
}?
//子类
?
public class Four extends Five{
?
? private String color;//定义私有成员变量?
? public Four(){?
color=“blue”;System.out.println(“Four类无参构造”);?
}?
public Four(String c){?
olor=c;System.out.println(“Four类有参构造”);?
}?
public static void main(String[] args){
?
Four f1=new Four();//调用不带参
构造函数;?
Four f2=new Four(“red”);调用带参构造函数;?
}?
注意:当通过子类构造方法创建子类对象时,默认的先执行父类不含参数的构造方法,再执行子类构造方法
。?
通过super关键字调用父类含参构造方法,例如,
?
?public Four(double s,String c){?
???super(s);??? //调用Five类中带一个参数的构造方法
?
color=c;?
?System.out.println(“Four类有参构造”);?
????????? }