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. 【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解

    声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 逆向目标 目标:加速乐加密 ...

  2. Jupyter Notebook支持Go

    在执行下列命令之前,请确保你已经安装了Go和Jupyter. gophernotes是针对Jupyter和nteract的Go内核,它可以让你在基于浏览器的笔记本或桌面app上交互式地使用Go.下面介 ...

  3. C# 中判断List集合是否为空

    判断List集合是否为空,可以使用Count和Any,下面是其使用场景(别人总结)

  4. python中可变参数与装饰器的例子

    python的可变参数 方法定义 #*args是可以传list类型的可变参数,**kwargs是可以传dict的可变参数 def wrapper(*args, **kwargs): 使用示例 def ...

  5. go中bufio使用小结

    bufio 前言 例子 bufio 源码解析 Reader对象 实例化 ReadSlice ReadString ReadLine Peek Scanner Give me more data Err ...

  6. SpringAOP配置要点

    一.基于配置文件 1.关于aop配置文件相关 <!--配置aop--> <aop:config> <!--配置切入点表达式--> <aop:pointcut ...

  7. MyBatis动态sql之foreach标签 构建 in 语句

    <foreach> 元素主要用在构建 in 条件中,它可以在 SQL 语句中迭代一个集合.<foreach> 元素的属性主要有 item.index.collection.op ...

  8. JS Leetcode 496. 下一个更大元素 I 更清晰的图解单调栈做法

    壹 ❀ 引 最近一周的工作压力很大...一周的时间一直在处理一个APP漏洞问题,因为项目三年无人维护,突然要改东西光是修改构建错误以及三方包依赖错误就花了三天时间= =.不过好在问题到已经结束尾,闲下 ...

  9. DS18B20数字温度计 (二) 测温, ROM和CRC算法

    目录 DS18B20数字温度计 (一) 电气特性, 寄生供电模式和远距离接线 DS18B20数字温度计 (二) 测温, ROM和CRC算法 DS18B20数字温度计 (三) 1-WIRE总线 ROM搜 ...

  10. New Questions

    1. C++/Qt 实现一个信号槽 #include <functional> #include <iostream> #include <vector> clas ...