关于java的继承

关于java的继承

我们在上一篇文章中,了解到了封装,我们本篇文章来介绍一下面向对象的第二大特点,继承,还是遵循结合现实生活中的实际情况,理解着去学习,能更好的加深印象😀。

一、继承

  • 继承的本质:是对某一批类的抽象,从而实现对现实世界更好的建模。
  • extends的意思是“扩展”,子类是父类的扩展。

我们新建一个软件包,然后在这个里面,新建一个人类,学生类,老师类。

package oop.Demo05;
//Person 人  :  父类
public class Person 
{

}

我们知道,学生类也是人类,所以我们新建一个学生类,然后继承人类。

package oop.Demo05;
//学生 is 人  :  派生类(子类)
public class Student extends Person 
{
    
}

老师类也是人类,我们再新建一个老师类,然后继承人类。

package oop.Demo05;
//Teacher is 人  : 派生类(子类)
public class Teacher extends Person
{
    
}
  • java类中,只有单继承,没有多继承!

  • 继承是类和类之间的一种关系,除此之外,类和类之间的关系还有依赖,组合,聚合等。

  • 继承关系的两个类,一个是子类(派生类),一个为父类(基类),子类继承父类,使用关键字extends来表示。

  • 子类和父类之间,从意义上讲应该具有“ is a”的关系。

  • 子类可以继承父类的所有方法。

1、我们在父类(Person类)中,定义一个方法,“说你好”的方法。

package oop.Demo05;
//Person 人
public class Person {
    public void say()
    {
        System.out.println("Hello");
    }
}

2、我们的子类(Student类)继承了父类,所以在Student类里面我们什么方法都不写。

package oop.Demo05;
//学生 is 人  :  派生类(子类)
public class Student extends Person 
{
    
}

3、我们通过main方法,来new一个Student类的对象,看是否可以调用方法。

package oop.Demo02;

import oop.Demo05.Student;

public class Application {
    public static void main(String[] args) {
        Student student = new Student();
        student.say();//发现这里可以直接调用
    }
}

我们执行以下代码,可以看到输出结果。

Hello

进程结束.......

4、不光子类可以继承父类的方法,还可以继承属性,但是前提是,父类中的属性是public

package oop.Demo05;
//Person 人
public class Person {
    
    public int money=10_0000_0000;
    
    public void say()
    {
        System.out.println("Hello");
    }
}

我们输出一下student.money。

package oop.Demo02;

import oop.Demo05.Student;

public class Application {
    public static void main(String[] args) {
        Student student = new Student();
        System.out.println(student.money);
    }
}

我们执行以下代码,可以看到输出结果。

1000000000

进程结束.......

5、但是如果把修饰符public公有的,换成private私有的,继承了也无法调用。

二、四个修饰符

  • public(公有的)

  • default(默认的)

  • protected(受保护的,protected与private基本相似,只有在继承时有较大的区别。继承的类可以访问protected成员,但是不能访问private成员。)

  • private(私有的)

  • 虽然私有的属性无法被继承,但是可以用get set方法,去变相调用。

三、object

我们在子类或者父类里面,按下Ctrl+H 就会跳转到继承结构。

在这里插入图片描述

在这里我们发现,Person上面还有一个类,Object,Person类继承了Object类。

如果我们在Person中,什么方法也不写,但是创建一个person对象的时候,仍然可以使用方法,如下代码。

package oop.Demo02;

import oop.Demo05.Person;

public class Application {
    public static void main(String[] args) {
        Person person = new Person();
        person.hashCode();//依旧可以使用方法
    }
}
  • 在java中,所有的类,都默认直接或者间接继承Object类

  • 继承里面还有两个重点,一个super,一个方法的重写,我们放在后边详细去说明😀。

  • java类中,只有单继承,没有多继承!

  • 一个儿子只能有一个爸爸,一个爸爸可以有多个儿子,就是学生类可以继承人类,但是人类可以被老师类继承。

  • 28
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,继承关系涉及到子和父之间的成员关系。下面是关于Java继承中的成员关系的一些说明[^1][^2]: 1. 子可以继承的成员变量和方法。子可以直接访问继承自父的公共成员变量和方法。 2. 子可以重写父的方法。子可以根据自己的需求重新实现父中的方法,这被称为方法重写。 3. 子可以新增自己的成员变量和方法。子可以在继承的基础上添加自己的成员变量和方法。 4. 子可以调用父的构造方法。子的构造方法可以通过使用super关键字来调用父的构造方法。 5. 子可以使用super关键字来访问父的成员变量和方法。如果子中有与父同名的成员变量或方法,可以使用super关键字来区分。 下面是一个示例代码,演示了Java继承中的成员关系: ```java class Person { String name; int age; public void eat() { System.out.println("Person is eating..."); } } class Student extends Person { public void study() { System.out.println("Student is studying..."); } } class Worker extends Person { public void work() { System.out.println("Worker is working..."); } } public class Main { public static void main(String[] args) { Student student = new Student(); student.name = "John"; student.age = 20; student.eat(); // 继承自父的方法 student.study(); // 子自己的方法 Worker worker = new Worker(); worker.name = "Tom"; worker.age = 30; worker.eat(); // 继承自父的方法 worker.work(); // 子自己的方法 } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值