1.继承的基础使用
父类Person的内容:
package com.xlx.java; public class Person { String name; int age;
// 构造器 public Person() { } public Person(String name,int age) { this.name=name; this.age=age; } public void sleep() { System.out.println("睡觉"); } public void eat() { System.out.println("吃饭"); } }
子类Student的内容:
package com.xlx.java; public class Student extends Person{ String major; public Student() { } public Student(String name,int age,String major) { this.name=name; this.age=age; this.major=major; } public void study() { System.out.println("学习"); } }
说明:
- extends关键字作用是子类Student继承自父类Person
- 继承自父类后的子类可以直接使用父类中声明的所有方法属性
- 即父类保存了所有子类中所共有的属性及方法
- 父类中的私有的属性,通过get,set方法也可以调用
- 只是因为封装性的影响,使得子类不能直接调用父类的结构而已
- 子类继承父类以后,还可以定义自己的属性和方法
图示:
继承性的优点:
- 减少了代码的冗余,避免重复代码
- 便于功能的扩展
- 为多态性的使用,提供了前提
2.继承性的格式:
class A extends B{}
A即子类(派生类/subclass),B即父类(超类、基类/superclass)
3.继承性再说明:
(1)Java只支持单继承和多层继承,不允许多重继承
- 一个子类只能有一个父类 class A extends B{}(√)
- 一个父类可以派生出多个子类 class A extends B,C,D...{}(×)
(2)子类父类的概念是相对的
- 子类直接继承的父类称为直接父类,间接继承的称为简介父类
- 继承父类以后,就获取了直接父类以及所有间接父类中声明的属性和方法
(3)如果我们没有显式的声明一个类的父类的话,则此类继承于java.lang.Object类
即所有的java类(除java.lang.Object类外),都直接或者间接继承于java.lang.Object类
意味着,所有的java类都具有java.lang.Object类中声明的功能