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. ES6 Array.fiill()的用法

    简单使用 // arr.fill(value, start, end) // value填充的值 // start填充的起始位置包含 // end填充的结束值,不包含,如果省略这个参数,表示从起始位置 ...

  2. 【调研】VictoriaMetrics的上报api能否替换prometheus的api?

    prometheus的上报api在:https://github.com/prometheus/client_golang VictoriasMetrics的上报API在:https://github ...

  3. GitHubDesktop汉化和下载

    GitHubDesktop下载 这玩意官网下载速度特别慢 如果不想等待的可以戳下面链接进行下载 会实时同步更新的 下载地址:GitHubDesktop下载

  4. 从零开始配置vim(24)——自动补全

    neovim 自带的代码补全的效果并不好,而且它分为好多类,如果需要人为的去判断使用路径补全.使用当前buffer中的单词补全.亦或者使用include 来进行补全,那样使用起来就很不方便了.针对代码 ...

  5. TienChin 渠道管理-查看渠道接口

    自定义 hasPermission 校验规则 自定义一个 Spring Security hasPermission 校验规则: 在 tienchin-framework 模块当中进行自定义,新建 C ...

  6. 机器学习算法(三):基于horse-colic数据的KNN近邻(k-nearest neighbors)预测分类

    机器学习算法(三):基于horse-colic数据的KNN近邻(k-nearest neighbors)预测分类 项目链接参考:https://www.heywhale.com/home/column ...

  7. C/C++ 静态编译SQLITE数据库API

    C/C++ 编译并使用Sqlite数据库,实现增删改查. 首先下载数据库: https://sqlite.org/download.html 分别下载:sqlite-amalgamation-3350 ...

  8. 基于.NET三维控件的个性化管道软件开发

    1 简介 管道广泛用于化工.工厂.建筑.市政等方面,关系到国计民生.虽然管道设计软件种类繁多,有的也非常强大(然而也非常昂贵),但也并不能完全满足个性化需要. 如何快速开发一款满足自己需求的三维管道设 ...

  9. 7、后端学习规划:PHP学习 - 学习规划系列文章

    PHP在其阵营中被称为世界上最好的编程语言.笔者在学习了其一些框架后也有一定的经验,当时主要根据其框架进行的开发.对于PHP来说,在编程排行榜上也是有名的存在,现在还有一些网站应用也是用的PHP进行的 ...

  10. 程序设计实验第一学期期末考试复习用源代码【C语言深度解剖】【超详细注释】

    有关此篇 在这里博主先告诉大家,博主在学校学的C语言课本是<谭浩强的C语言>那这本红色的书. 博主到期末阶段是学到了结构体那一章,下面是博主的复习代码,是一些比较有编程思想的一些源代码,博 ...