面向对象之继承(Java)
面向对象是Java学习中最基础,也是最重要的一部分,其中它的三大特征包括:
今天让我们一起来学习面向对象的三个特征中的第二大特征——继承。
何为继承?
和我们生活中的继承是一个意思,子女可以继承父母的车、房、财产,姓氏等······
- 在java中,继承使用的关键字是extends。
- 子类可以继承父类的属性、方法。
- 在Java中,继承只能单继承,所以一个子类只能继承一个父类。但是一个父类允许有多个子类。
为何要使用继承?
实现了代码的重用,相同的代码不需要重复的编写。
子类继承父类,可以直接享受父类中已经封装好的属性以及方法,不需要再次开发。
子类可以根据自己的属性,封装自己特有的属性和方法。
如何使用?(格式)
public class Fu{
//属性
//方法
}
//extends 表示继承
public class Zi extends Fu{
//属性
//方法
}
通过案例具体学习
- 创建父类,拥有属性姓名和年龄。拥有show()方法显示自己的信息。
- 创建子类,继承父类的属性和方法,拥有新的属性爱好。
- 创建测试类,进行测试。
Fu.java
public class Fu {
private String name; //父亲的姓名
private int age; //父亲的年龄
//父亲的个人信息
public void show(){
System.out.println("我是爸爸,我的名字:"+getName());
System.out.println("今年的岁数:"+getAge()+"岁");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Zi.java
public class Zi extends Fu{
private String like; //儿子的特有属性:爱好
//重写父亲的show()方法,并展示自己特有的属性
@Override
public void show() {
System.out.println("我是儿子,我的名字:"+getName());
System.out.println("今年的岁数:"+getAge()+"岁");
System.out.println("我的爱好:"+getLike());
}
public String getLike() {
return like;
}
public void setLike(String like) {
this.like = like;
}
}
Test
public class Test {
public static void main(String[] args) {
Fu fu = new Fu(); //创建父类对象
fu.setName("小头爸爸"); //为父亲取名字
fu.setAge(35); //为父亲设置年龄
fu.show(); //展示父亲的个人信息
System.out.println("============");
Zi zi = new Zi(); //创建子类对象
zi.setName("小头儿子"); //为儿子取名字
zi.setAge(12); //为儿子设置年龄
zi.setLike("打篮球、打伞");//为儿子设置爱好
zi.show(); //展示儿子的个人信息
}
}
运行结果
从这个案例可以很清晰的看出
- 在子类中,继承了父类,并没有为子类去声明属性名字和年龄,但是在测试类中可以直接调用名字和年龄的set和get方法。所以在子类中,继承了父类的属性name和age。
- 在父类中有一个show()方法,在子类中也有一个show()方法,在它的上面有这样一个单词@Override,这表示方法的重写,也就是说继承并覆盖了父类的show()方法,而且可以在子类中得到扩展,因此在子类的show()方法中展示了自己特有的属性。
别忘了一键三连哟!