----------siwuxie095

 
 

 
 

 
 

 
 

 
 

方法的重写:

 
 

(1)在继承中也存在着重写的概念,其实就是子类定义了和父类同名的方法

 
 

(2)定义:方法名称相同,返回值类型相同,参数也相同

 
 

(3)重写限制:被子类重写的方法不能拥有比父类更严格的访问权限

 
 

(4)访问权限:private < default < public

 
 

〔private 只能在当前类中进行访问,default 可以在同一包下进行访问

(没有写
private 和 public,即是 default),public 可以在整个工程下

都可以访问〕

 
 

 
 

代码:

 
 

package com.siwuxie095.extendsdemo;

 
 

class A{

public
void tell() {

System.out.println("A---tell() 方法");

}

 

private
void say(){}

 

//前面什么都没有写的即是 default

void print(){}

 
 

}

 
 

 
 

class B extends A{

public
void tell(){

//调用父类的方法

super.tell();

System.out.println("B---重写 tell() 方法");

}

}

 
 

public class ExtendsDemo04 {

 
 

public static
void main(String[] args) {

B b=new B();

b.tell();

}

 
 

}

 
 

 
 

运行一览:

 
 

 
 

 
 

 
 

 
 

 
 

super 关键字:

 
 

强行调用父类方法的执行

 

super 不一定在重写中使用,也可以表示方法是从父类继承而来的

 
 

 
 

如:

子类对象在实例化之前,先调用父类构造方法,后调用子类构造方法的原因:

 
 

虽然没有手动去调用父类的构造方法,其实是省略了
super();,在编译时系统

自动在子类的构造方法中加入
super();

 
 

 
 

代码:

 
 

package com.siwuxie095.extendsdemo;

 
 

 
 

class Father{

private String name;

private
int age;

 

public Father() {

System.out.println("父类的构造方法");

}

 

}

 
 

class Son extends Father{

public Son() {

super();

System.out.println("子类的构造方法");

}

 

 

}

 
 

public class ExtendsDemo03 {

 
 

public static
void main(String[] args) {

//实例化时,先执行父类的构造方法,再执行子类的构造方法

Son s=new Son();

}

 
 

}

 
 

 
 

运行一览:

 
 

 
 

 
 

 
 

 
 

【made by siwuxie095】

Java方法重写与super关键字的更多相关文章

  1. java方法重写和super关键字

    //java方法重写和super关键字 //在继承中,其实就是子类定义了和父类同名的方法 //就是方法,属性都是相通的 //重写限制: //被子类重写的方法不能拥有比父类方法更加严格的权限 //sup ...

  2. Java面向对象之继承,方法重写,super关键字,员工类系列继承题

    在程序中,如果想声明一个类继承另一个类,需要使用extends关键字. 格式: class 子类 extends 父类 {} 继承的好处 1.继承的出现提高了代码的复用性,提高软件开发效率. 2.继承 ...

  3. java方法重写的规定

    java方法重写的规定: 方法的声明: 权限修饰符 返回值类型 方法名(形参列表) throws 异常的类型{ // 方法体 } 子类中的叫重写的方法, 父类中的叫被重写的方法 子类重写的方法的方法名 ...

  4. 在子类中,若要调用父类中被覆盖的方法,可以使用super关键字

    在子类中,若要调用父类中被覆盖的方法,可以使用super关键字. package text; class Parent {    int x;    public Parent()    {      ...

  5. Java方法重写

    重写override 为什么要重写方法呢? 1:当父类中的方法无法满足子类需求时候,重写方法 2:当子类需要有特有的功能时候,重写方法. Java方法重载:在同一类中,出现多个方法名相同的方法,但是参 ...

  6. 乐字节Java继承|方法重写、super和final关键字

    大家好,乐字节的小乐又来了,上一篇是:乐字节Java|JavaBean.继承与权限修饰,也是属于Java继承的,今天继续Java继承. 一. 方法的重写 父类不满足子类的要求,按需改写.注意 方法签名 ...

  7. java基础学习总结——super关键字

    一.super关键字

  8. java的继承 和super关键字 构造器

    面向对象的特性二继承: 继承的好处: 1.减少代码的冗余.提高了代码的复用性 2.便于功能的扩展 3.为之后多态的使用,提供了前提 继承的格式: class A extends B{} A:子类.派生 ...

  9. 重写、super关键字、final关键字、多态、子类型转换、抽象的初步了解

    重写 含义 在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法.但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写.方法重写又称方法覆盖. 重写与重载的 ...

随机推荐

  1. [转]使用tcpdump抓取HTTP包

    tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854 0x4745 为"GET"前两个字母"G ...

  2. Vim使用YouCompleteMe达到类似IDE的代码提示、补全,以及其他实用设置

    接触Linux有两年了,vim还是只会简单的操作.最近实在受不了sublime的代码提示,决定花点时间来配置下vim.本文讲自己认为方便的vim配置,称不上完美,只讲究简单实用. 使用 ctags 主 ...

  3. 洛谷3195(HNOI2008)玩具装箱

    题目:https://www.luogu.org/problemnew/show/P3195 自己做斜率优化的第一道题. 推成斜率优化的样子很重要. 斜率优化的样子就是从 j 中求 i 的话,关系式里 ...

  4. 【备忘】windows环境下20行php代码搞定音频裁剪

    先上图,由于最近的需求需要对语音文件进行处理,所以抽空研究了下php处理音/视频文件的处理,简单的demo处理,截取一个音频文件的前20秒,并保存新的媒体文件. 操作步骤: ①在此站点下载所需的辅助程 ...

  5. js正则验证

    /判断输入内容是否为空    function IsNull(){        var str = document.getElementById('str').value.trim();      ...

  6. HDU 4970 Killing Monsters(树状数组)

    Killing Monsters Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Other ...

  7. Tomcat常用设置

    远程Dbug调试: TOMCAT配置(只需设置一次): 1.在服务器的$TOMCAT_HOME/bin/catalina.sh中增加: CATALINA_OPTS="-server -Xde ...

  8. 05:Sysbench压测-innodb_deadlock_detect参数对性能的影响

    目录 sysbench压测-innodb_deadlock_detect参数对性能的影响 一.OLTP测试前准备 二.进行OLTP测试 三.测试结果解读: 四.关于测试后的结论: 五.关于测试后的性能 ...

  9. ORA-01146: cannot start online backup - file 1 is already in backup ORA-01110: data file 1: 'C:\ORACLE\ORADATA\ORCL8\SYSTEM01.DBF'

    问题: Error: [1146] ORA-01146: cannot start online backup - file 1 is already in backup ORA-01110: dat ...

  10. PHP for和foreach的区别

    首先,我们先准备两个用于遍历的数组: $arr1=array(1=>'a', 3=>22, 5=>'b', 4=>'c', 8=>'d'); $arr2=array('a ...