1 package com.bytezero.override;
2 /*
3 * 方法的重新(override/overwrite)
4 *
5 * 1.重写:子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作
6 *
7 * 2.重写以后,创建子类对象以后,通过子类对象调用父类中的同名同参数的方法时,
8 * 实际执行的是子类重写父类的方法
9 *
10 * 3.重写的规定:
11 * 方法的声明:权限修饰符 返回值类型 方法名 thiows(异常的类型)(形参列表)
12 * {
13 * //方法体
14 * }
15 *
16 * 子类中的叫重写的方法
17 * 父类中的叫被重写的方法
18 * (1)子类重写的方法的方法名和形参列表与父类被重写的方法名和形参列表相同
19 * (2)子类重写的方法的权限修饰符 不小于 父类被重写的方法权限修饰符(也可以相等)
20 * >特殊情况:子类不能重写父类中声明为 private 权限的方法
21 *
22 * (3)返回值类型
23 * 父类被重写的方法的返回值类型是 void,则子类重写的方法的返回值类型 只能是 void
24 * 父类被重写的方法的返回值类型是 A 类型,则子类重写的方法的返回值类型可以是A类,
25 * 或A类的子类
26 * 父类被重写的方法的返回值类型是 基本数据类型(double),则子类重写的方法的返回值类型必须
27 * 是相同的基本数据类型(double)
28 *
29 * 异常方面:子类重写的方法抛出异常类型(Runtime) 不大于 父类被重写的方法抛出异常类型(Exception)
30 *
31 * ************************************************************************************************
32 * 子类和父类中的同名同参的方法 要么都声明为非static的(考虑重写),要么都声明为 static的(不是重写)
33 * static不能被重写 .
34 *
35 *
36
37 * 面试题:区分方法的重载与重写
38 *
39 *
40 *
41 *
42 *
43 *
44 *
45 *
46 */
47
48
49
50 public class PersonTest
51 {
52 public static void main(String[] args)
53 {
54 Student s = new Student("计算机科学与技术");
55
56 s.eat(); //重写以后调用自己的
57 s.walk(100); //父类的
58
59 System.out.println("*************************");
60
61 // s.major ="语文"; //自己的
62 s.study();
63
64 Person p1 = new Person();
65 p1.eat(); //调用自己的eat() 方法
66 }
67 }
 1 package com.bytezero.override;
2
3 public class Person
4 {
5 String name;
6 int age;
7
8 public Person()
9 {
10
11 }
12
13 public Person(String name,int age)
14 {
15 this.name = name;
16 this.age = age;
17 }
18
19 public void eat()
20 {
21 System.out.println("吃饭");
22 }
23 public void walk(int distance)
24 {
25 System.out.println("走路,走的距离是啊"+distance+"公里");
26 show();
27 eat();
28 }
29
30 private void show()
31 {
32 System.out.println("这是一个私有的方法");
33 }
34
35 public Object info()
36 {
37 return null;
38 }
39
40 public double info1()
41 {
42 return 1.0;
43 }
44
45
46 }
 1 package com.bytezero.override;
2
3 public class Student extends Person
4 {
5
6 String major;
7
8 public Student()
9 {
10
11 }
12
13 public Student(String major)
14 {
15 this.major = major;
16 }
17
18 public void study()
19 {
20 System.out.println("学习,专业是:"+major);
21 }
22
23 //重写了父类中的 eat方法
24 public void eat()
25 {
26 System.out.println("学生应该多吃有营养的食物");
27 }
28
29 public void show() //不认为是重写了,因为父类是 私有 private 权限
30 {
31 System.out.println("这是一个私有的方法,这个方法在student重写了。");
32 }
33
34 public String info()
35 {
36 return null;
37 }
38
39 // public int info1()
40 // {
41 // return 1;
42 // }
43
44
45
46 }

Java 重写引入的更多相关文章

  1. Java - 21 Java 重写(Override)与重载(Overload)

    Java 重写(Override)与重载(Overload) 重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写!返回值和形参都不能改变.即外壳不变,核心重写! 重写的好 ...

  2. java 重写你可以这么理解 因为 方法名和参数类型个数相同 所以这就是重写了 然后 因为是重写 所以 返回值必须相同

    java  重写你可以这么理解    因为   方法名和参数类型个数相同  所以这就是重写了    然后  因为是重写  所以  返回值必须相同

  3. Java:重写equals()和hashCode()

    Java:重写equals()和hashCode() 1.何时需要重写equals() 当一个类有自己特有的“逻辑相等”概念(不同于对象身份的概念). 2.设计equals() [1]使用instan ...

  4. JAVA重写不需要@override

    一,如下代码, package com.boot.enable.bootenable; import org.springframework.scheduling.annotation.Async; ...

  5. Java项目引入第三方Jar包

    普通java Project 引入jar包: 1,copy jar to lib folder. 2, imported with Build path -> Add external jars ...

  6. Java重写方法与初始化的隐患(转)

    原文出处: Shawon 虽然文章标题是Java, 但几乎所有面向对象设计的语言都遵守这个初始化流程, 感谢廖祜秋liaohuqiu_秋百万指出, 之前忘记提这个了. 前言 drakeet写了个和Re ...

  7. java重写equals方法

    @Override public int hashCode() { return task.getId(); } @Override public boolean equals(Object obj) ...

  8. Java 重写(Overriding)和重载(Overloading)

    方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现. 重写是父类与子类之间多态性的一种表现 重载是一类中多态性的一种表现.

  9. java 重写 重载

    首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态 ...

  10. java如何引入接口中定义的常量

    接口 (A.java) : package config; public interface A { String PROJECT_ROOT_DIR = System.getProperty(&quo ...

随机推荐

  1. 从零开始配置 vim(10)——快捷键配置

    之前我们对neovim 进行了基础的配置,这篇主要介绍我比较常用的快捷键配置.到这篇开始我们的配置已经可以为两个大的模块--基础配置和快捷键配置.我们的目录也应该按照模块来进行组织.在正式配置之前让我 ...

  2. 多智能体强化学习算法【一】【MAPPO、MADDPG、QMIX】

    相关文章: 常见多智能体强化学习仿真环境介绍[一]{推荐收藏,真的牛} 多智能体强化学习算法[一][MAPPO.MADDPG.QMIX] 多智能体强化学习算法[二][MADDPG.QMIX.MAPPO ...

  3. Linux文件IO之一 [补档-2023-07-21]

    Linux文件IO 8-1C标准库IO函数的工作流程 ​ 使用fopen函数打开一个文件,之后会返回一个FILE* fp指针,fp指针指向一个结构体,这个结构体是c 标准io库中的一个结构体,这个结构 ...

  4. 从嘉手札<09-06-2023>

    时常会想 这个世界什么是长久的 我们走在时代的映照下,行色匆匆. 因为别人的悲欢而悲欢,因为自己的局限而挣扎. 晨而得志,暮而踌躇. 青楼梦好,难赋深情. 这个世界有很多的选择. 金钱,酒色,健康,相 ...

  5. 应用--WebApplication

    应用--Program中的WebApplication 在6.0,微软团队对于NetCore做了很大的改变,其中有一个改变就是推出了新的托管模型--最小托管模型,使用该模型可以创建最小的web应用.( ...

  6. 视觉slam十四讲 ch3 三维刚体运动

    视觉slam十四讲 ---CH3 三维刚体运动 三维刚体运动,即三维空间下的刚体的运动.刚体,是指在运动中和受力作用后,形状和大小不变,而且内部各点的相对位置不变的物体.在运动过程中,机器人或者飞机和 ...

  7. 深入浅出 testing-library

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:佳岚 The more your tests resemb ...

  8. PostgreSQL-查询每个表的大小

    1.查询数据库中单个表的大小(不包含索引) select pg_size_pretty(pg_relation_size('表名')); 2.查询所有表的大小并排序(包含索引) SELECT tabl ...

  9. NebulaGraph入门介绍

    NebulaGraph入门介绍 什么是图数据库? 图数据库就会是存储图形网络并能从中检索信息的数据库. 图数据库在处理关联关系上有极大的优势,它以图论为理论基础,使用图模型,将关联数据的实体作为顶点( ...

  10. ES6学习 第四章 字符串的新增方法

    前言 本章介绍字符串对象的新增方法.不常用的方法不做重点笔记. 本章原文链接:字符串的新增方法 includes().startsWith().endsWith() 确定一个字符串是否包含在另一个字符 ...