一、Java语言中假设一个类没有显式的继承任何类,那么该类默认继承Java SE库中提供的java.lang.Object类

1.快捷键:Ctrl + shift + T:可以在Myeclipse中查找类

2.快捷键:Ctrl + shift + R:可以在Myeclipse中查找资源

继承类举例:

package com.bjpowernode.java_learning;

​

public class D45_1_ extends Extend1 {

  public static void main(String[] args) {

    D45_1_ d1 = new D45_1_();

    System.out.println(d1.toString());//说明继承了JavaSE默认的类

    System.out.println(d1.a);//继承了Extend1这个类,其实继承就是指把父类的代码都拿到子类里面

    //不能继承构造方法和私有实例变量

  }

​

}

class Extend1 {

  int a;

}

回顾一下:

方法重载和返回值类型,和修饰符列表是没有关系的。

方法重载的条件:在同一个类中;方法名相同;参数列表不同(包括顺序、类型、个数)

二、方法的覆盖

1.方法覆盖又被称为方法重写,英文名称:override\overwrite

2.什么时候使用方法重写

当父类中的方法已经无法满足当前子类的业务需求,子类有必要将父类中继承过来的方法机型重新编写,这个重新编写的过程称为方法重写/方法覆盖

3.什么条件下才会发生方法覆盖

(1)方法重写发生在具有继承关系的​父子类之间;

(2)返回值类型相同,方法名相同,形式参数列表相同

(3)方法重写的时候,访问权限不能变得更低,比如:原来的函数是public的,继承的类必须比public更大,或者平级,不能是protected这种更小的权限

(4)方法重写的时候,抛出异常不能更多,可以更少或一样多。(这个后面再讲)

4.建议方法重写的时候尽量复制粘贴,不要编写,容易出错,导致没有产生覆盖​。

5.​注意点:

(1)私有方法不能继承,​所以不能覆盖;(2)构造方法不能继承,所以​不能覆盖;(3)静态方法不存在覆盖​;(4)覆盖只针对方法不包含属性变量​。

package com.bjpowernode.java_learning;

​

public class D45_2_MethodCover {

  public static void main(String[] args) {

    Animal1 a1 = new Animal1();

    a1.name = "jfai";

    a1.move();

    Bird1 b1 = new Bird1();

    b1.name = "jfioaweh";

    b1.move();

  }

​

}

class Animal1{

  String name;

  public void move() {

    System.out.println(this.name+"正在移动");

  }

}

class Bird1 extends Animal1{

  public void move() {

    System.out.println(this.name+"不再移动");//方法重写,

  }

}

6.生成override的​快捷方法:

source-生成方法覆盖​

五、源码:

D45_1_InheritClassExample.java

D45_2_MethodCover.java

地址:

https://github.com/ruigege66/Java/blob/master/D45_1_InheritClassExample.java

https://github.com/ruigege66/Java/blob/master/D45_2_MethodCover.java

2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

Java连载45-继承举例、方法覆盖的更多相关文章

  1. [Java学习]面向对象-类的继承;方法覆盖

    一.类的继承 实现方法: public Class SubClass extends SuperClass{ } 继承最基本作用: 代码重用. 继承最重要的作用: 方法可以重写. 关于类的继承: 子类 ...

  2. 【JAVA】笔记(4)---继承;方法覆盖;多态机制;super;

    继承(extends): 1.作用:为方法覆盖和多态机制做准备:使代码得到复用(节省代码量): 2.格式: class 子类 extends 父类 3.理解继承:子类继承父类,其实就相当于把父类的类体 ...

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

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

  4. 接口与继承:方法覆盖(super)

    源代码 //父类Parent class Parent{ int x; int y; Parent() { x = ; y = ; } public void Set(int a,int b) { x ...

  5. 继承 & super & 方法覆盖

    简单继承 细节1: 细节2: 子类创建对象,先 父类构造器,后 子类的构造器,因为(默认的super) 细节3: 假设父类只有一个有参构造器,  此时需要子类用上super给定父类参数,才能通过编译 ...

  6. Java类的继承与方法调用的一个小问题

    public class Father { protected void server(int i){ switch (i){ case 1: methodone(); break; case 2: ...

  7. 牛客网Java刷题知识点之方法覆盖(方法重写)和方法重载的区别

    不多说,直接上干货! https://www.nowcoder.com/ta/review-java/review?query=&asc=true&order=&page=6 ...

  8. Java连载44-静态代码块、实例代码块、继承

    一.可以使用static关键字来定义“静态代码块” 1.语法规则 static { java语句: } 2.静态代码块在类加载时执行,并且只执行一次 3.静态代码块在一个类中可以编写多个,并且遵循自上 ...

  9. java基础疑难点总结之成员变量的继承,方法重载与重写的区别,多态与动态绑定

    1.成员变量的继承 1.1要点 子类用extends关键字继承父类.子类中可以提供新的方法覆盖父类中的方法.子类中的方法不能直接访问父类中的私有域,子类可以用super关键字调用父类中的方法.在子类中 ...

随机推荐

  1. java 初学 :求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字。几个 数相加由键盘控制。

    import java.util.Scanner; public static void main(String[] args) {       Scanner input=new Scanner(S ...

  2. 关于eclipse创建的[传统web项目][传统maven项目][maven-web项目][springboot项目]目录结构

    总体比较 [传统web项目] [传统maven项目] [maven-web项目] [springboot项目] 本文摘至https://blog.csdn.net/qq_42747738/articl ...

  3. Unable to open debugger port: java.net.SocketException

    网上都说是tomcat端口被占用,其实不是,这是因为文件权限不够,脚本不能执行,debug当然不能接受网络连接的数据 可以在Event Log里看到 所以只需要更改文件的级别就可以了(可读可写可执行) ...

  4. 《移动WEB前端高级开发实践@www.java1234.com.pdf》——2

    5.3 作用域.闭包和this let 声明的变量只存在于其所在的代码块中 由于 JS 是基于词法(静态)作用域的语言,词法作用域的含义是在函数定义时就确定了作用域,而不是函数执行时再确定 calcu ...

  5. <String> 161 358

    161. One Edit Distance 1. 两个字符串的长度之差大于1,直接返回False. 2. 两个字符串的长度之差等于1,长的那个字符串去掉一个字符,剩下的应该和短的字符串相同. 3. ...

  6. 蓝牙spp协议分析

    基本概念 蓝牙串口是基于 SPP 协议(Serial Port Profile),能在蓝牙设备之间创建串口进行数据传输的一种设备. 蓝牙串口的目的是针对如何在两个不同设备(通信的两端)上的应用之间保证 ...

  7. vue组件化思想和模块化

    组件化 注册组件的基本步骤 创建组件构造器 (调用Vue.extend()方法) 注册组件 (调用Vue.component()方法) 注册组件语法糖 省去了调用Vue.extend()的步骤,而是可 ...

  8. ycsb 测试Hbase性能

    下载 github:https://github.com/brianfrankcooper/YCSB/releases/tag/0.10.0 wget https://github.com/brian ...

  9. PHP 开发工程师基础篇 - PHP 数组

    数组 (Array) 数组是 PHP 中最重要的数据类型,可以说是掌握数组,基本上 PHP 一大半问题都可以解决. PHP 数组与其他编程语言数组概念不一样.其他编程语言数组是由相同类型的元素(ele ...

  10. ef实现一次查询多个聚合函数的字段

    想用ef来写一个统计字段的语句,如下所示 select sum(price) as price_total, sum(amount) as amount_total from table1 发现似乎实 ...