通过java理解linux,Java继承的理解

继承:

1)概念

把多个类中相同的成员给提取出来定义到一个独立的类中。然后让这多个类和该独立的类产生一个关系,这多个类就具备了这些内容。这个关系叫继承。

1.1)定义类时,通过“继承”一个现有的类,子类可以具有父类中的所有属性和方法。

e1297783ab3cf05cab0075066397163e.png

2)Java中如何表示继承呢?格式是什么呢?

A:用关键字extends表示

B:格式:

class 子类名 extends 父类名 {}

2.1)案例

public class Animal {

String name;

String color;

public void run(){System.out.println("这只动物正在奔跑");

}

}

package com.sp;

public class Person extends Animal{

public static void main(String[] args) {

Person p = new Person();

p.name="TOM";

p.color="白色" ;

p.run();

}

}

2.2)方法重载

2.2.1)当子类继承父类时,可以从父类继承它的属性和方法。

2.2.2)如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。

2.2.3)当对父类的方法进行重写时,子类中的方法必须和父类中对应的方法具有相同的方法名称、输入参数(包括参数的个数和类型)和返回值。

2.2.4)子类中的覆盖方法不能使用比父类中被覆盖方法更严格的访问权限。

package com.sp;

public class Person extends Animal{

//重写run方法  重写方法返回类型、方法名、参数列表  和父类的这个方法的返回类型一致

public void run(){

System.out.println("这个人正在奔跑吧 ,兄弟");

}

//重写sing方法

public boolean sing(String name){

System.out.println("这个人正在唱歌");

return true;

}

public static void main(String[] args) {

Person p = new Person();

p.name="TOM";

p.color="白色" ;

p.run();

p.sing("");

}

}

2.3)访问控制:

在Java中,可以在类、类的属性以及类的方法前面加上一个修饰符(modifier),来对类进行一些访问上的控制。

8abbf232e8b8591b8b0e4d5031f1e558.png

3)继承的好处:

A:提高了代码的复用性

B:提高了代码的维护性

C:让类与类产生了一个关系,是多态的前提

4)继承的弊端:

4.1):让类的耦合性增强。这样某个类的改变,就会影响其他和该类相关的类。

原则:低耦合,高内聚。

耦合:类与类的关系

4.2):打破了封装性

5)Java中继承的特点

5.1):Java中类只支持单继承

5.2):Java中可以多层(重)继承(继承体系)

5.3):java.lang.Object类是所有类的父类

6)继承的注意事项:

6.1):子类不能继承父类的私有成员

6.2):子类不能继承父类的构造方法,但是可以通过super去访问

6.3):不要为了部分功能而去继承

7)什么时候使用继承呢?

7.1):继承体现的是:is a的关系。

7.2):采用假设法

8)Java继承中的成员关系

8.1):成员变量

8.1.1):子类的成员变量名称和父类中的成员变量名称不一样

8.1.2):子类的成员变量名称和父类中的成员变量名称一样,这个怎么访问呢?

类的方法访问变量的查找顺序:

在子类方法的局部范围找,有就使用。

在子类的成员范围找,有就使用。

在父类的成员范围找,有就使用。

找不到,就报错。

8.2):构造方法

8.2.1):子类的构造方法默认会去访问父类的无参构造方法

是为了子类访问父类数据的初始化

8.2.2):父类中如果没有无参构造方法,怎么办?

子类通过super去明确调用带参构造

子类通过this调用本身的其他构造,但是一定会有一个去访问了父类的构造

让父类提供无参构造

8.3):成员方法

a:子类的成员方法和父类中的成员方法名称不一样,这个太简单

b:子类的成员方法和父类中的成员方法名称一样,这个怎么访问呢?

通过子类对象访问一个方法的查找顺序:

在子类中找,有就使用

在父类中找,有就使用

找不到,就报错

9)super关键字

9.1)作用

在Java类中使用super来引用父类的(属性、方法和构造器)

super可用于访问父类中定义的属性

super可用于调用父类中定义的成员方法

super可用于在子类构造器中调用父类的构造器

9.2)调用父类构造器

在子类的构造器中一定要调用一次父类的构造器,系统默认调用的是父类无参数的构造器。

如果子类构造器中既未显式调用父类构造器,而父类中又没有无参的构造器,则编译出错

如果父类没有无参数的构造器,在子类的构造器中可使用语句super()调用父类相应有参数的构造器

0b1331709591d260c1c78e86d0c51c18.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 373. 查找和最小的K对数字(自定义优先队列BFS)

1. 题目 给定两个以升序排列的整形数组 nums1 和 nums2, 以及一个整数 k。 定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2。 找到和最小的 k 对数字 (u1,v1), (u2,v2) … (uk,vk)。 示例 1: 输入: nums1 [1,7,11], nums2 [2,4,…

Android中使用Thread线程出现的问题

很多初入Android或Java开发的新手对Thread、Looper、Handler和Message仍然比较迷惑,衍生的有HandlerThread、java.util.concurrent、Task、AsyncTask由于目前市面上的书籍等资料都没有谈到这些问题,今天Android123就这一问题做更系统性的总结.  Androi…

linux防火墙的复规则,Centos下iptables防火墙规则编辑方法 - YangJunwei

今天整理一下Centos下iptables防火墙规则的保存、清除等编辑方法。如已经安装,请跳过。$ yum install iptables二、查看 iptables 防火墙已有规则以下四种方法任选其一即可。$ service iptables status$ /etc/init.d/iptables status (此方法为上一方法的路径执行版…

Blend设计VSM

Silverlight中的ControlTemplate(1)-概念 Silverlight中的ControlTemplate(2)-概念 Silverlight中的ControlTemplate(3)-Blend设计ControlTemplate 上一篇我是通过Blend简单的演示如何修改ControlTemplate,这一篇关注VSM这个部分。 概念的东…

Pandas入门3(dtype+fillna+replace+rename+concat+join)

文章目录5. dtype 数据类型6. Missing data 缺失值6.1 查找缺失值 pd.isnull(),pd.notnull()6.2 填补缺失值 fillna(),replace()7. Renaming and Combining 重命名、合并7.1 Renaming 重命名7.2 Combining 合并数据learn from https://www.kaggle.com/l…

Linux连接状态为syn_recv,linux 服务器 syn*** 大量SYN_RECV状态处理

1、查看连接状态netstat -nat | awk /^tcp/{S[$NF]}END{for (a in S) print a,S[a]}SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理完毕,等待超时结束的请求数。状态:描述CLOSED&#xff1…

LeetCode 388. 文件的最长绝对路径(不用栈,前缀和)

1. 题目 假设我们以下述方式将我们的文件系统抽象成一个字符串: 字符串 "dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext" 表示: dirsubdir1subdir2file.ext目录 dir 包含一个空的子目录 subdir1 和一个包含一个文件 file.ext 的子目录 subdir2 。 字符串 "dir\n…

使用Delphi自带的TDockTabSet组件实现停靠功能(Jeremy North)

源地址:http://edn.embarcadero.com/article/33446 摘要: Instructions on how to use the TDockTabSet component to make advanced docking user interfaces. Introduction This article discusses the use of the TDockTabSet component that was originally int…

linux下面 r和 n的区别,【冷知识】关于/r与/n以及 /r/n 的区别总结

首先:\r就是"回到行首",\n就是"到下一行"即:\r是回车,\n是换行,前者使光标到行首,后者使光标下移一格。通常用的Enter是两个加起来的,即\r\n直接这么说你可能没啥感觉,但是真正到了编码…

LeetCode 417. 太平洋大西洋水流问题(BFS/DFS)

文章目录1. 题目2. 解题2.1 BFS 广度优先搜索2.2 DFS 深度优先搜索1. 题目 给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度。 “太平洋”处于大陆的左边界和上边界,而“大西洋”处于大陆的右边界和下边界。 规定水流只能按照上、下、左、右四个方…

用jdbc连接各数据库驱动

sql server 2000下的连接串:DRIVER"com.microsoft.jdbc.sqlserver.SQLServerDriver";URL"jdbc:microsoft:sqlserver://localhost:1433;databaseNamessoDemo;usersa;password1"; sql server 2005下的连接串:private static final Str…

安装linux出现基础系统出错,Linux系统出错提示信息详解

ERROR PCI: cannot allocate(无法指派)这样的错误有许多,他们主要在启动系统时出现。他们有一个共同的起因:错误的电源管理行为。罪魁祸首是一个叫做ACPI的东西,即高级配置与电源接口。尽管他是一种电源管理标准,但在十几年的时间…

vCard 格式

最近在做联系人的一些功能,当然是有必要了解一下vCard文件的格式,格式大致如下: vCard 2.1: 1: BEGIN:VCARD 2: VERSION:2.1 3: N:Gump;Forrest 4: FN:Forrest Gump 5: ORG:Bubba Gump Shrimp Co. 6: TITLE:Shrimp Man 7: TEL;WORK;V…

c语言基本数据类型常量,C语言基础学习基本数据类型-变量和常量

变量和常量什么是变量和常量?有些数据在程序运行前就预先设定,并在运行过程中不发生变化,称之为常量;有些数据在程序运行中可能发生变化或被赋值,称之为变量。使用变量前必须先声明一个变量。变量定义的语法是&#xf…

C++ 下一代标准库 tr1中默认的哈希 FNV hash

FNV是 Glenn Fowler, Landon Curt Noll, and Phong Vo 三人的缩写。 FNV-1 哈希算法的核心思想如下: hash offset_basisfor each octet_of_data to be hashed hash hash * FNV_prime hash hash xor octet_of_data return hash实现源码 uint32_t fnv_hash…

LeetCode 416. 分割等和子集(动态规划)

1. 题目 给定一个只包含正整数的非空数组。 是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: [1, 5, 11, 5] 输出: true 解释: 数组可以分割成 [1, 5, 5] 和 [11].示例 …

c语言格式错误pe,C语言PE文件filebuffer到imagebuffer的错误

// 代码节空白添加.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include int FileBuffers(PVOID* FileBuffer){//传入的FileBufferLPVOID PtempBuffer;FILE* f fopen("C:\\Users\\Administrator\\Desktop\\PET…

2011年影响3G手机发展四大因素

今晨闻讯,中电信明年3季度将推出iPhone。据称CDMA版本的iPhone推出,对中国电信意义重大,售价会高于WCDMA版。联通、移动、电信争夺“苹果血案”将继续上演。 截止2010年12月31日,中国3G用户不超过5000万。而工信部落实3G发展规划是…

c语言字符数组实参 形参,c语言基础(3) 数组和指针作为实参和形参的问题

字符串char a[]"abc";printf("%s",a);fgets(a,100, stdin) //安全的字符串输入函数printf("%s",a);scanf("%*[^\n]"); //两个scanf清空输入缓存scanf("%*c");int 值作为实参 指针作为形参void xchange1(int *n1,int *n2)…

Feature Engineering 特征工程 1. Baseline Model

文章目录1. 读取数据2. 处理label3. 添加特征4. 数据集切片5. 训练6. 预测learn from https://www.kaggle.com/learn/feature-engineering下一篇:Feature Engineering 特征工程 2. Categorical Encodings 1. 读取数据 预测任务:用户是否会下载APP&…