今天回顾一下Java继承:
继承的概念
继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
继承的特性:
- 子类拥有父类非 private 的属性、方法。
- 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
- 子类可以用自己的方式实现父类的方法。
- Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 A 类继承 B 类,B 类继承 C 类,所以按照关系就是 C 类是 B 类的父类,B 类是 A 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
- 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。
Java 中子类继承父类的语法格式如下:
修饰符 class 子类的名称 extends 父类的名称 {
// 类的主体
}
extends 关键字直接跟在子类名之后,其后面是该类要继承的父类名称。
实例:
1.创建种类 People,并定义 name、zl属性,代码如下:
public class People {
public String name;
public String zl;
public People(String name, String zl){
this.name=name;
this.zl=zl;
}
public String toString(){
return"姓名:"+name+"\n类型:"+zl;
}
}
2.创建 People 类的子类 Student 类,并定义 stuzl 和 stu 属性,代码如下:
public class Student extends People {
private String stuzl;//
private String stu;
public Student(String name, String zl,String stuzl,String stu) {
super(name, zl);
this.stuzl=stuzl;
this.stu =stu;
}
public String toString(){
return"姓名:"+name+"\n种类:"+ zl +"\n品种:"+ stuzl + "\n类型:"+stu;
}
}
3.创建 People 类的另一个子类 Penguin,并定义 yy 和 ee 属性,代码如下:
public class Penguin extends People {
private String yy;
private String ee;
public Penguin(String name, String zl,String yy, String ee) {
super(name, zl);
this.ee=ee;
this.yy=yy;
}
public String toString(){
return"姓名:"+name+ "\n类型:"+zl+"\n目:"+yy+ "\n动物类型:"+ee;
}
}
4.编写测试类 PeopleTest,在该类中创建 People 类的不同对象,分别调用它们的 toString() 方法,输出不同的信息。具体的代码如下:
public class PeopleTest {
public static void main(String[] args) {
People stuPeople=new Student("梨树", "植物", "树", "种子");
System.out.println("----------植物信息----------");
System.out.println(stuPeople);
System.out.println();
People teaPeople=new Penguin("老虎", "动物", "食肉目", "哺乳纲");
System.out.println("----------动物信息----------");
System.out.println(teaPeople);
}
}
代码结果: