Java继承教程
我们了解到,面向对象的基本特性有封装、继承和多态。面向对象中,类是将所有共性的东西封装。我们考虑一种场景,自然界里面有动物,动物里面有熊、老虎、鸭等等,他们有一些共性的东西,有毛色、有雌雄、能够吃饭、喝水等等。
这些共性的东西如果放在类里面,是不是在定义每个动物的时候,都需要重写一遍呢?这个时候我们可以将共性的东西抽取出来,变成一个父类,让一些子类来继承,这样就不需要进行重复定义动物的属性或者方法来,只需要在子类里面进行定义就可以了。
Java继承定义
语法
class 父类{} //定义一个父类
class 子类 extends 父类{} //子类继承父类
参数
参数
说明
父类
定义一个类,和定义普通的类一样
子类
定义一个类,和定义普通的类一样
extends
继承用到的关键字
说明
定义类的时候,和定义普通类一样,
案例
我们定义一个父类 Fathcer.java
package com.haicoder.net.extend;
public class FatherClass{
//名字
private String name;
//年龄
private Integer age;
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public Integer getAge(){
return age;
}
public void setAge(Integer age){
this.age = age;
}
public void info(){
System.out.println("name : " + this.name + " age : " + this.age);
}
}
定义一个子类 ChildClass.java
package com.haicoder.net.extend;
public class ChildClass extends FatherClass{
private String ownerProperty;
public String getOwnerProperty(){
return ownerProperty;
}
public void setOwnerProperty(String ownerProperty){
this.ownerProperty = ownerProperty;
}
}
调用子类测试类
package com.haicoder.net.extend;
public class TestMain{
public static void main(String[] args){
System.out.println("嗨客网(www.haicoder.net)");
ChildClass childClass = new ChildClass();
childClass.setName("嗨客");
childClass.setAge(21);
childClass.info();
}
}
运行结果如下:
在运行结果中,我们看到,我们子类没有定义父类中的任何属性,但是在测试类里面,我们定义了一个子类的对象,然后调用了父类里面是 public 类型的方法,比如 setName,setAge 和 info 方法,子类中都可以使用。
Java继承总结
在 Java 语言中,继承是单继承的,也就说一个子类只能够继承一个父类,而一个父类可以有多个子类。比如定义一个父类 A。有两个子类 B 和 C。那么 B 可以继承 A,C 也可以继承 A。这个时候 A 是 B 和 C 的父类,而 B 和 C 只能够有 A 一个父类。
子类可以使用父类中的