Java类的继承原理与用法分析

所属分类: 软件编程 / java 阅读数: 39
收藏 0 赞 0 分享

本文实例讲述了Java类的继承。分享给大家供大家参考,具体如下:

为什么要继承?

观察两个类的成员组成

 

提取相同的属性和方法

宠物是父类,狗和金鱼是子类。子类具有父类的属性和方法。

继承定义

是使用已存在的类作为基础建立新类的技术。

单一继承:只有一个父类。

父类可以叫做基类、超类。子类可以叫做派生类。

继承注意事项

子类可以继承父类中的成员(属性和方法)。

但是需要注意:

1.private的成员不能继承

2.子类和父类不在同一个程序包,使用默认访问权限的成员不能继承

3.构造器不能继承。

继承原则

设计继承关系要符合里氏替换原则。is-a关系

子类是父类,可以完全替换掉父类,代码没有任何影响。

里氏替换原则(LSP):在一个软件系统中,子类对象可以替换所有使用的父类对象,且程序行为没有变化

重写

在子类中,子类中的方法名、参数、返回值和父类中的完全相同,那么叫做子类重写了父类中的方法。

只有实例成员方法才能重写。静态成员方法、静态变量、实例成员变量不能重写,隐藏。

重写和隐藏的根本区别

重写可以实现多态,隐藏不能实现多态

重写注意事项

1.名字必须完全一致

2.参数 父类擦除后与子类一致;或者与子类完全一致。

3.返回值类型 可以完全一致,如果是引用类型,允许子类的返回值类型是父类的 子类

4.访问修饰符 子类不能比父类更严格。

5.异常处理 不能比父类范围更大。

为什么要重写?

1.子类修改了父类中的功能。

2.子类扩展了父类中的功能。

class 父类手机{
 public void 来电显示(){
     显示电话号;
  }
}
class 子类手机 extends 父类手机{
 public void 来电显示(){
     显示电话号;
     显示人名;
     显示地址;
  }
}

super

表示父类范围

super关键和this作用类似,是被屏蔽的成员变量或者成员方法或变为可见,或者说用来引用被屏蔽的成员变量和成员成员方法。
不过super是用在子类中,目的是访问直接父类中被屏蔽的成员,注意是直接父类(就是类之上最近的超类)。

super的用法

第一、在子类构造方法中要调用父类的构造方法,用“super(参数列表)”的方式调用,参数不是必须的。同时还要注意的一点是:“super(参数列表)”这条语句只能用在子类构造方法体中的第一行。

第二、当子类方法中的局部变量或者子类的成员变量与父类成员变量同名时,也就是子类局部变量覆盖父类成员变量时,用“super.成员变量名”来引用父类成员变量。当然,如果父类的成员变量没有被覆盖,也可以用“super.成员变量名”来引用父类成员变量,不过这是不必要的。

第三、当子类的成员方法覆盖了父类的成员方法时,也就是子类和父类有完全相同的方法定义(但方法体可以不同),此时,用“super.方法名(参数列表)”的方式访问父类的方法。

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

更多精彩内容其他人还在看

SpringBoot中使用Ehcache的详细教程

EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认的 CacheProvider。这篇文章主要介绍了SpringBoot中使用Ehcache的相关知识,需要的朋友可以参考下
收藏 0 赞 0 分享

在idea 中添加和删除模块Module操作

这篇文章主要介绍了在idea 中添加和删除模块Module操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

java spring整合junit操作(有详细的分析过程)

这篇文章主要介绍了java spring整合junit操作(有详细的分析过程),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解JAVA 弱引用

这篇文章主要介绍了 JAVA 弱引用的相关资料,帮助大家更好的理解和学习java引用对象,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

深入了解JAVA 虚引用

这篇文章主要介绍了JAVA 虚引用的相关资料,帮助大家更好的理解和学习JAVA,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

详解JAVA 强引用

这篇文章主要介绍了JAVA 强引用的相关资料,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

java中的按位与(&)用法说明

这篇文章主要介绍了java中的按位与(&)用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

深入了解JAVA 软引用

这篇文章主要介绍了JAVA 软引用的相关资料,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

利用MyBatis实现条件查询的方法汇总

这篇文章主要给大家介绍了关于利用MyBatis实现条件查询的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用MyBatis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

Intellij IDEA 与maven 版本不符 Unable to import maven project See logs for details: No implementation for org.apache.maven.model.path.PathTranslator was bound

这篇文章主要介绍了Intellij IDEA 与maven 版本不符 Unable to import maven project See logs for details: No implementation for org.apache.maven.model.path.Pa
收藏 0 赞 0 分享
查看更多