java 继承作用_java三大特性之继承

继承(extends):

让类与类之间产生关系,子父类的关系

继承的好处与弊端:

好处:

提高代码的复用性

提高了代码的维护性

让类与类之间产生关系,是多态的前提

弊端:

类的耦合性增加

开发的原则是:

1、高内聚,低耦合

2、耦合:类与类的联系

3、内聚:就是自己完成某件事情的能力

继承的特点(掌握):

Java只支持单继承,子类只能有一个父类。

注:但是java中的接口功能支持多实现

Java支持多层继承(爷-父-子)

java中类的继承特点:

如果想看这个体系的所有功能用最底层的类创建对象

如果想看共性功能,看最顶层的类

继承的注意事项(掌握)

子类只能继承父类的非私有的成员(成员变量和成员方法)

子类不能继承父类的构造器,但是可以通过super 关键字调用父类的构造方法

不要为了部分功能而去强行继承

适合使用继承的环境:

当两者体现的是一种 is-a 的关系。

例如:

人-->男人

食物-->水果-->苹果-->酸苹果

this 和super的区别:

this代表当前对象的引用,谁来调用我,我就代表谁

super代表父类对象的引用。

两者使用区别

调用成员变量

this调用本类的成员变量,也可以调用父类的成员变量

super调用父类的成员变量

调用构造方法

this调用本类的构造方法

super调用父类的构造方法

调用成员方法

this.成员方法 调用本类的成员方法,也可以调用父类的成员方法

super.成员方法 调用父类的成员方法

继承中构造方法的关系(掌握)

子类所有的构造方法都会默认访问父类的构造方法。

原因:

子类继承父类的数据,可能会使用父类的数据。

子类初始化前会先完成父类的初始化

每个构造方法的第一条语句默认都是:super();

Object类是最顶层的类(Everything is Object)万物皆为对象

继承中构造方法的注意事项(掌握)

父类没有构造方法时,子类怎么办?

super解决

this解决

注意:super(...)或者this(...)必须出现在构造方法的第一条语句上。

方法的重写的注意事项(掌握)

注意以下方法不会重写

1、静态方法不会重写 ,父类为静态,子类只能为静态,否则编译错误

2、final 修饰方法 否则编译错误

3、私有方法不会重写

4.子类重写父类方法时,访问权限不能更低最好写成一致。

5.子类重写父类的方法时,最好声明一模一样。

* Override和Overload的区别?Overload能改变返回值类型吗?

* overload可以改变返回值类型,只看参数列表

* 方法重写:子类中出现了和父类中方法声明一模一样的方法。与返回值类型有关,返回值是一致(或者是子父类)的

* 方法重载:本类中出现的方法名一样,参数列表不同的方法。与返回值类型无关。

* 子类对象调用方法的时候:

* 先找子类本身,再找父类。

final关键字(一把手术刀)

特点:

修饰类:类不能被继承

修饰变量:变量编程常量,只能初始赋值一次

修饰方法:不能被重写

final修饰变量的初始化时机:

显示初始化

在对象构造完毕前即可。

final 表示最终的。

不能修饰构造方法

修饰类,表示该类不能被继承.比喻成一把极其锋利的手术刀,将父类阉割

修饰方法,表示该方法不能被重写

修饰属性,表示常量,值一旦确定不可改变。

final 修饰的方法不可以被覆盖,但父类中没有被 final 修饰方法,子类覆盖后可以加 final。

class Fu {

// final 修饰的方法,不可以被覆盖,但可以继承使用

public final void method1(){}

public void method2(){}

}

class Zi extends Fu {

//重写 method2 方法

public final void method2(){}

}

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

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

相关文章

java gui 单选_java GUI编程(swing)之三swing单选框复选框组件

swing复选框(JCheckBox) 单选框(JRadioButton)特别说明:同一组单选按钮,必须先创建一个ButtonGroup,然后把单选按钮放到ButtonGroup中package gui;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import j…

websocket连接mysql_websocket 使用 spring 的service层 ,进而调用里面的 dao层 来操作数据库 ,包括redis、mysql等通用...

1.前言描述一下今天用websocket踩得坑 ---》空指针异常!我想在websocket里面使用service 层的接口,从中获取数据库的一些信息 ,使用 Autowired 注解 接口 ,报错 空指针异常 !!!查过资料才发…

世上最简单的mysql_最简单易懂的mysql安装教程

今天安装MySQL花了蛮长时间的,感觉坑还是挺多的,写遍文章总结一下。一、安装1.解压zip包到安装目录先从MySQL官网 下载mysql最新的免安装版压缩包解压之后变成这个样子:里面的文件是这个样子下面开始了,请注意2.配置文件在安装目录…

java if hasvalue_首选:可为空 .HasValue或Nullable !=空吗?

我一直使用Nullable<>.HasValue因为我喜欢这种语义。 但是&#xff0c;最近我正在开发其他人的现有代码库&#xff0c;其中他们专门使用Nullable<> ! null 。是否有理由优先使用一个&#xff0c;还是纯粹是偏爱&#xff1f;int? a; if (a.HasValue) // ...与int?…

Java 源程序的良好书写规范有哪些_使用Java作为程序语言时,好的命名规范有哪些...

变量名普通变量命名应该采用首字母小写&#xff0c;其他字母首字母大写的方式。final static变量的名字应该都大写&#xff0c;并且指出完整含义。如果一个常量名称由多个单词组成&#xff0c;则应该用下划线来分割这些单词如。NUM_DAYS_IN_WEEK MAX_VALU如果需要对变量名进行缩…

java邮箱exchange_使用Javamail访问Microsoft Exchange邮箱(IMAP,MS Exchange)

我需要通过IMAPS JavaMail连接到Microsoft Exchange Server.首先,我得到了&#xff1a;A1 NO AUTHENTICATE failed.javax.mail.AuthenticationFailedException: AUTHENTICATE failed.我的调试器中的异常.然后,我禁用了一些身份验证协议&#xff1a;imapProps.setProperty("…

java.equal例子_Java中的== 和equals()方法详解与实例

Java中的 和equals()方法&#xff1a;Java中的数据类型&#xff0c;可分为两类&#xff1a;1.基本数据类型&#xff0c;也称原始数据类型。byte,short,char,int,long,float,double,boolean&#xff0c;他们之间的比较&#xff0c;应用双等号(),比较的是他们的值。2.引用数据类型…

aix系统升级失败提示java_AIX系统补丁升级失败处理

问题描述&#xff1a;现网一台IBM P550小型机&#xff0c;初始版本通过oslevel –r命令检查为5300-02&#xff0c;在IBM官方网站下载5300-06补丁并升级到5300-06后系统报错&#xff0c;缺少sysmgt.websm.apps 5.3.0.60&#xff0c;sysmgt.websm.rte 5.3.0.60两个文件问题处理&a…

java 序列化工具kryo_java jackson avro kryo等几种序列化与反序列化工具的使用

最近由于工作需要&#xff0c;需要研究常用的集中序列化方式&#xff0c;主要目的是对象序列化后占用空间会大大减少&#xff0c;便于存储和传输&#xff0c;下面是几种序列化方式的使用demo1. Java自带的Serialize依赖jar包&#xff1a;无代码示意&#xff1a;import java.io.…

Java反射设置list的属性值_利用java反射比较两个实体有哪些属性值不一样

分享一个利用反射实现比较两个实体属性值的方法&#xff1a;package net.zwq1105.test;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.Method;import java.sql.Timestamp;import java.util.ArrayList;import java.util.Array…

java编码规范右大括号换行_java编码规范摘选

1.方法注释模板;description&#xff0c;param&#xff0c;author可选&#xff1a;return&#xff0c;exception2. 行尾注释&#xff0c;如循环结束&#xff0c;模块类结束行3. 文件开头注释项目名称project n ame创建日期&#xff1a;{date}修改历史&#xff1a;版权声明&…

python widnows mysql_Windows下python安装MySQLdb

安装MySQLdb需要在电脑上安装MySQL connector C&#xff0c;只需要这个connector就好&#xff0c;不需要把mysql装全。另外&#xff0c;需要安装VC for python提供编译。到官网上下载脚本进行安装即可&#xff0c;解压压缩包以后&#xff0c;cmd到目标目录&#xff0c;python s…

centos6 yum安装mysql5.6_centos 6.5 yum安装mysql 5.6

[rootlocalhost ~]# vim /etc/yum.repos.d/mysql.repo 新建mysql的yum文件[mysql56-community]nameMySQL 5.6 Community Serverbaseurlhttp://repo.mysql.com/yum/mysql-5.6-community/el/6/$basearch/gpgcheck0wq保存退出&#xff01;[rootlocalhost ~]# yum repolist enable…

java 中断代码_你的java代码可中断吗?(2)

1.确保提交到线程池的任务可中断原文&#xff1a;www.securecoding.cert.org&#xff0c;TPS02-J. Ensure thattasks submitted to a thread pool are interruptible。为了能完全关闭线程池或者取消线程池中的个别任务&#xff0c;程序应提交支持使用Thread.interrupt()中断的任…

php session 封装类,PHP封装的数据库保存session功能类

本文实例讲述了PHP封装的数据库保存session功能类。分享给大家供大家参考&#xff0c;具体如下&#xff1a;PHP用数据库保存session类&#xff1a;class SafeSessionHandler implements SessionHandlerInterface {public $save_path;public $session_name;public $table;public…

apache php mysql配置详解,详细介绍:Apache+PHP+MySQL配置攻略_php基础

一、系统要求&#xff1a;本系统在REDHAT7.2版本测试通过二、服务器端软件要求&#xff1a;1:到APACHE的网络站下载APACHE WEB SERVER http://www.apache.org/2. 到php的网络站下载php解析器 http://www.php.net/三&#xff0e;安装调试WEB SERVER把以上各文件下载后放到同一个…

php递归算法排序,php常用的排序算法代码[冒泡,递归排序-PHP源码

《script》ec(2);《script》php 常用的排序算法代码[冒泡,递归排序冒泡排序算法function bubblesort($arr){$ncount($arr);for($i0;$i{for($j$i;$j<$n-1;$j){if($arr[$i]>$arr[$j]){$temp$arr[$i];$arr[$i]$arr[$j];$arr[$j]$temp;}}}return $arr;}//直接插入排序functio…

php dos,防止用户利用PHP代码DOS造成用光网络带宽

用PHP代码调用sockets,直接用服务器的网络攻击别的IP,常见代码如下:$packets 0;$ip $_GET[\ip\];$rand $_GET[\port\];set_time_limit(0);ignore_user_abort(FALSE);$exec_time $_GET[\time\];$time time();print \"Flooded: $ip on port $rand\";$max_time $t…

java中wait的场景,wait——webdriver实用指南java版

场景Wait类的使用场景是在页面上进行某些操作&#xff0c;然后页面上就会出现或隐藏一些元素&#xff0c;此时使用WebDriverWait类的until方法来等待这些效果完成以便进行后续的操作。另外页面加载时有可能会执行一些ajax&#xff0c;这时候也需要去WebDriverWait的until的等待…

php使用未定义常数,php-使用未定义的常量SIGTERM-gt;假定为’SIGTERM’

当前在Windows机器上运行带有Codeception的PHPUnit会给我一个错误&#xff1a;[PHPUnit_Framework_Exception]Use of undefined constant SIGTERM –assumed ‘SIGTERM’据我所知,SIGTERM是PCNTL提供的常数,Windows不支持.这样,该常数就不能用于Windows env上运行的测试.完全没…