Java面向对象——特征二:继承性简介

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方法也可以调用
  • 只是因为封装性的影响,使得子类不能直接调用父类的结构而已
  • 子类继承父类以后,还可以定义自己的属性和方法

 图示:

  

继承性的优点:

  1. 减少了代码的冗余,避免重复代码
  2. 便于功能的扩展
  3. 为多态性的使用,提供了前提

 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类中声明的功能

 
原文地址:https://www.cnblogs.com/codexlx/p/13533848.html