JavaSE基础(18) 继承

news/2024/11/29 0:36:46/

继承

概念

生活中我们经常听到一些名词,譬如富二代,官二代,红二代,穷二代,农二代等等,它代表中人与人之间的一种关系。那么程序当中怎么表示这种关系呢?

概念:描述两个类的关系的。在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类(派生类,SubClass),现有类被称作父类(超类,SuperClass),子类会自动拥有父类所有非私有的属性和方法

意义:

        A:避免重复的代码。(从子类的角度)

        B:扩展类的功能。(从父类的角度)

继承性:子类,父类。存在继承关系。

        子类对象,可以直接访问父类的非私有的属性和方法。(避免重复代码)

        子类也可以新增自己的属性和方法。(扩展类的功能)

        子类可以重新实现父类已有的方法。(扩展类的功能)

语法:

        父类:A类

        子类:B类 extends 父类A

语法结构:

class 父类{}class 子类 extends 父类{}

extends 关键字:表示两个类是继承关系。

public class Person {String name;int age;public void eat(){System.out.println("吃东西。。。。。");}public void sleep(){System.out.println("睡觉");}
}/*** extends关键字:表示两个类是继承关系。*/
public class Student extends Person{String school;//@Override可以不加,但是如果加上,子类的重写的方法一定要和父类的那个方法名相同public void eat(){System.out.println("学生吃东西。。。。。");}public void study(){System.out.println("学习了。。。。。");}}//父类的创建Person p1 = new Person();p1.name = "乔布斯";p1.age = 55;p1.eat();p1.sleep();//p1.study();父类无法访问子类新增的方法和属性Student stu = new Student();stu.name = "小学生";stu.age = 34;stu.eat();stu.sleep();stu.school = "清华";stu.study();//子类肯定可以访问新增的方法

继承中的构造方法

public class Animal {private String type;int age;String color;public Animal(){System.out.println("父类Animal无参构造函数......");}public Animal(String type, int age, String color) {System.out.println("父类Animal有参构造函数......");this.type = type;this.age = age;this.color = color;}public void eat(){System.out.println("动物吃东西.....");}public void print(){System.out.println("type:"+type+";age:"+age+";color:"+color);}
}
//继承父类非私有的属性和方法
public class Cat extends Animal{public Cat(){System.out.println("子类Cat无参构造......");}public Cat(String type,int age,String color,String name){super(type,age,color);//super()指代父类构造函数的时候,也只能放在第一句,如果显式调用了某个构造函数,就不会默认调用无参构造了System.out.println("子类Cat有参构造函数......");//        this.age = age;
//        this.color = color;this.name = name;}//新增一些属性和方法String name;//重新实现父类的方法
//    @Override//相当于加了约束,
//    public void eat(){
//        System.out.println("猫吃鱼........");
//    }public void catchMouse(){System.out.println("抓老鼠......");}}


http://www.ppmy.cn/news/39220.html

相关文章

操作系统的概念、功能、目标

1.操作系统的层次结构 2.操作系统的概念 负责管理协调硬件和软件等计算机资源的操作 为上层的应用系统、用户提供简单易用的服务 操作系统是系统软件,而不是硬件 3.操作系统的功能与目标 先放一张思维导图,大概知道操作系统的具体功能和目标&#x…

企业敏感数据保护

数据风险评估 组织经常处理大量敏感数据;例如,医疗保健组织处理大量敏感的患者信息。如果未存储在安全位置,攻击者可能会利用此信息。 数据风险评估是指评估组织关键数据的存储位置的过程。它涉及根据文件的敏感性对文件进行分类并为它们提供必要的安全…

Qt配置Libtorch并简单测试

文章目录软件版本一、下载Libtorch二、配置Qt Creator三、测试项目参考:纯小白初次学习深度学习,根据目前所学、所查资料总结该配置文章,如有更好的方法将深度学习模型通过C部署到实际工程中,希望学习交流。 软件版本 Python3.1…

推箱子小游戏

文章目录一、 介绍二、 制作墙壁、地面三、 制作箱子四、 制作终点五、 制作人物移动六、 推箱子关键触发机制七、 终点设置八、 关卡切换设置九、 协程十、 下载一、 介绍 2D推箱子游戏是一种益智类游戏,玩家需要控制角色将箱子推到指定的位置,以完成关…

【WebGIS实例】(7)MapboxGL绘制不同颜色的Symbol图标

前言 在上一篇实例博客中(MapboxGL绘制简易气泡图)我们绘制了一个简易的单色气泡图,现在需求升级了。我们需要为气泡加载不同的颜色。 而要实现这个效果,其实相当简单,直接利用Mapbox提供的SDF渲染方法。 官网教程参考…

Spring Web MVC 知识点汇总(2)—官方原版

一、异步请求 Spring MVC与Servlet异步请求 处理 有广泛的集成: controller 方法中的 DeferredResult 和 Callable 返回值为单个异步返回值提供了基本支持。controller 可以 流转(stream) 多个数值,包括 SSE 和 原始数据。contr…

【内网安全】横向移动非约束委派约束委派资源约束委派数据库攻防

文章目录章节点redteam.red 靶场委派攻击分类:关于约束委派与非约束委派横向移动-原理利用-约束委派&非约束委派非约束委派复现配置如何利用?klist purge 与 mimikatz sekurlsa::tickets purge 的区别约束委派(不需要与与域控建立连接)复现配置判断查…

子串判断问题

目录 子串判断 程序设计 程序分析 子串判断 【问题描述】设s、t 为两个字符串,两个字符串分为两行输出,判断t 是否为s 的子串。如果是,输出子串所在位置(第一个字符,字符串的起始位置从0开始),否则输出-1 【输入形式】两行字符串,第一行字符串是s;第二行是字符串t …