java方法重写和super关键字实例详解
java方法重写和super关键字
在继承中,其实就是子类定义了和父类同名的方法
就是方法,属性都是相通的
重写限制:
被子类重写的方法不能拥有比父类方法更加严格的权限
super:强行调用父类方法的执行
重载和重写的区别?
重 载是发生在一个类中 对权限没有要求 而且重载的方法参数可以不同
重写发生在继承汇总 被子类重写的方法不能拥有比父类方法更加严格的权限,重写的方法中参数名字完全相同
实例代码:
class A{ public void tell(){ System.out.println("我是tell方法"); } //private(同一个类下) < default(在同一包下可以被访问) < public(整个工程都可以访问) //默认default void say(){ } } class B extends A{ //这种方式称为方法的重写 public void tell(){ //super不一定在重写中使用,也可以表示那些方法是从父类中被继承过来的。 super.tell(); //通过super关键字可以调用父类中的tell方法 System.out.println("我重写了tell方法"); } } class HelloWorld{ public static void main(String[] args){ B b = new B(); b.tell(); } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
重写Java中的equals方法介绍
Java中,只有8种基本类型不是对象,例如:4种整形类型(byte, short, int,long),2种浮点类型(flout, double),boolean, char不是对象,其他的所有类型,不论是对象数组,列表等都扩展了Object类.了解学习Object中方法的设计原理和实现方式有助于更好的学习理解java语言.下面,我们首先学习一下Object中的equals方法. 判断两个对象相等时,JVM首先查找两个对象的hashCode, 如果两者hashCode不同,则返回false;如果
-
java 重载(overload)与重写(override)详解及实例
很多同学对于overload和override傻傻分不清楚,建议不要死记硬背概念性的知识,要理解着去记忆. 先给出我的定义: overload(重载):在同一类或者有着继承关系的类中,一组名称相同,参数不同的方法组.本质是对不同方法的称呼. override(覆写):存在继承关系的两个类之间,在子类中重新定义了父类中存在的方法.本质是针对同一个方法,给出不同的实现. 我们先来看重载的例子: public class OverloadParent{ public String getPerson(
-
Java重写与重载之间的区别
重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为. 也就是说子类能够根据需要实现父类的方法. 重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常.例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Exception 异常,因为 Exception 是 IOException 的父类,只能抛出 IOEx
-
java 函数的重载和重写实例代码
在java中多态分为两种编译时多态(重载)和运行时多态(重写),编译时多态又叫前绑定,运行时多态又叫后绑定. 下面用一个例子说明: public class OverloadAndOverwrite { public static void main(String[] args) { A a1 = new A(); A a2 = new B(); B b = new B(); C c = new C(); D d = new D(); System.out.print("a1.print(a1)
-
Java 重写与重载方法与区别详解
重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写!返回值和形参都不能改变.即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为. 也就是说子类能够根据需要实现父类的方法. 在面向对象原则里,重写意味着可以重写任何现有方法.实例如下: class Animal{ public void move(){ System.out.println("动物可以移动"); } } class Dog extends Animal{ public
-
Java 重载、重写、构造函数的实例详解
Java 重载.重写.构造函数的实例详解 方法重写 1.重写只能出现在继承关系之中.当一个类继承它的父类方法时,都有机会重写该父类的方法.一个特例是父类的方法被标识为final.重写的主要优点是能够定义某个子类型特有的行为. class Animal { public void eat(){ System.out.println ("Animal is eating."); } } class Horse extends Animal{ public void eat(){ Syste
-
java方法重写和super关键字实例详解
java方法重写和super关键字 在继承中,其实就是子类定义了和父类同名的方法 就是方法,属性都是相通的 重写限制: 被子类重写的方法不能拥有比父类方法更加严格的权限 super:强行调用父类方法的执行 重载和重写的区别? 重 载是发生在一个类中 对权限没有要求 而且重载的方法参数可以不同 重写发生在继承汇总 被子类重写的方法不能拥有比父类方法更加严格的权限,重写的方法中参数名字完全相同 实例代码: class A{ public void tell(){ Syst
-
java super关键字知识点详解
在对一些父类的调用上,我们需要借助java中的关键字使用,这就是super关键字,可以归纳为三种方法:作用于类.方法名和构造函数.可以把它看做是使用父类的一个工具,相信大家在之前类的使用中有所接触.下面我们就super的说明.三种用法.注意事项进行说明,然后在实例中体会用法. 1.说明 super相当于是指代当前的对象的父类,调用父类的属性.方法和构造方法 2.用法 (1)super.变量/对象名: 使用这种方法可以直接访问父类中的变量或对象,进行修改赋值等操作 (2)super.方法名():
-
Java toString方法重写工具之ToStringBuilder案例详解
apache的commons-lang3的工具包里有一个ToStringBuilder类,这样在打日志的时候可以方便的打印出类实例中的各属性的值. 具体用法如下: import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; public class Message { private String from; private Stri
-
Java8默认方法Default Methods原理及实例详解
这篇文章主要介绍了Java8默认方法Default Methods原理及实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Java 8 引入了新的语言特性--默认方法(Default Methods). Default methods enable new functionality to be added to the interfaces of libraries and ensure binary compatibility wit
-
Java编程思想对象的容纳实例详解
Java提供了容纳对象(或者对象的句柄)的多种方式,接下来我们具体看看都有哪些方式. 有两方面的问题将数组与其他集合类型区分开来:效率和类型.对于Java来说,为保存和访问一系列对象(实际是对象的句柄)数组,最有效的方法莫过于数组.数组实际代表一个简单的线性序列,它使得元素的访问速度非常快,但我们却要为这种速度付出代价:创建一个数组对象时,它的大小是固定的,而且不可在那个数组对象的"存在时间"内发生改变.可创建特定大小的一个数组,然后假如用光了存储空间,就再创建一个新数组,将所有句柄从
-
java中stringbuffer线程安全分析实例详解
在对于一些类作用于线程时,安全系数高的线程更推荐大家使用,在尽可能的程度上降低程序出错的可能性.对于本篇所要提到的StringBuffer而言,在其缓冲区中有多个线程的存在,我们在查询其内部方法时发现了锁的存在.现在我们就StringBuffer线程.锁的应用.线程安全分析逐步带来介绍. 1.StringBuffer线程说明 Java.lang.StringBuffer线程安全的可变字符序列.一个类似于String的字符串缓冲区,但不能修改.虽然在任意时间点上它都包含某种特定的字符序列,但通过某
-
JAVA多线程实现生产者消费者的实例详解
JAVA多线程实现生产者消费者的实例详解 下面的代码实现了生产者消费者的问题 Product.Java package consumerProducer; public class Product { private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } public Product(String id) { this.id=id; } publ
-
Java并发编程(CyclicBarrier)实例详解
Java并发编程(CyclicBarrier)实例详解 前言: 使用JAVA编写并发程序的时候,我们需要仔细去思考一下并发流程的控制,如何让各个线程之间协作完成某项工作.有时候,我们启动N个线程去做一件事情,只有当这N个线程都达到某一个临界点的时候,我们才能继续下面的工作,就是说如果这N个线程中的某一个线程先到达预先定义好的临界点,它必须等待其他N-1线程也到达这个临界点,接下来的工作才能继续,只要这N个线程中有1个线程没有到达所谓的临界点,其他线程就算抢先到达了临界点,也只能等待,只有所有这N
-
java与JSON数据的转换实例详解
java与JSON数据的转换实例详解 JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.) 代码中有这么一句,是后台的封装数据. JSONObject jo = JSONObject.fromObject(map); 常见的java代码转换成json --请注意,这个方法曾经给我造成过困惑.因为,它在对Object转换的时候是按照domain类中的所有getXXX()方
随机推荐
- Mootools 1.2教程(2) DOM选择器
- angular.js指令中的controller、compile与link函数的不同之处
- 浅谈Angular中ngModel的$render
- 虚拟机使用PuTTY、SSH Secure Shell Client前的配置
- oracle插入字符串数据时字符串中有'单引号问题
- Python实现文件复制删除
- Yii清理缓存的方法
- Yii2中hasOne、hasMany及多对多关联查询的用法详解
- Python中处理unchecked未捕获异常实例
- vue2.0开发实践总结之疑难篇
- mysql启动的error 2003和1067错误问题解决方法
- 关于FLASH与XML交互应用中的理解
- jQuery实现新消息闪烁标题提示的方法
- 改造ctrl+alt+del(默认重启)为一个信息搜集脚本的脚本
- 简述Java编程之关系操作符
- springmvc实现json交互-requestBody和responseBody
- C# 中DateTime 的使用技巧汇总
- Android.permission.MODIFY_PHONE_STATE权限问题解决办法
- c++插入排序详解
- Python中利用aiohttp制作异步爬虫及简单应用