java中的重写总结

这个理解了就挺容易的~~

我就直接贴个程序啦 ,程序里有说明!!

父类:

 1 package ParentAndSon;
 2
 3 public class Parent extends Object {//4:以final修饰的类不能别继承,3:Object是所有类的直接父类或间接父类
 4
 5     String sex="女";
 6     String name;
 7
 8
 9     public Parent() {
10
11     }
12
13     public Parent(String sex, String name) {
14         this.sex = sex;
15         this.name = name;
16     }
17
18     protected static Object say(String name) {
19         System.out.println("父亲说话");
20         return 0;
21     }
22     public void walk() {
23         System.out.println("父亲走路");
24     }
25 }

子类:

 1 package ParentAndSon;
 2
 3 import javax.management.remote.SubjectDelegationPermission;
 4
 5 //1:继承是根据已有类创建类的机制
 6 public class Son extends Parent {//:2:java只支持单继承
 7
 8     String age;
 9
10     public Son() {
11         super();
12     }
13
14
15     public Son(String age) {
16         super();
17         this.age = age;
18     }
19
20     //@Override
21     /*1:重写要求 方法名和方法参数列表(参数个数和参数对应的数据类型)必须相同
22      *2:重写的返回值a:如果是空或者基本数据类型,则子类返回值和父类一模一样
23      *            b:如果是引用数据类型,则子类返回值类型和父类一样或者是他的子类
24      *3:访问权限,子类的访问权限和父类一样,或者大于父类的访问权限
25      *4:父类中被static  final修饰的方法能被子类继承,但不能被重写,@Override可以判断是重写的方法还是一个新的方法
26      *5:父类中不是静态方法,子类中不能加static
27      *
28      */
29     public static Integer say(String name) {
30         System.out.println("儿子说话");
31         return 0;
32     }
33     //@Override  因为doHomework()方法不是重写的方法 所以出错
34     public void doHomework() {
35         System.out.println(sex);
36         System.out.println("儿子做作业");
37     }
38     public static void main(String[] args) {
39         Son son = new Son();
40         System.out.println(son.sex);
41     }
42 }

原文地址:https://www.cnblogs.com/lyxcode/p/9031252.html

时间: 2024-10-19 19:09:14

java中的重写总结的相关文章

Java中的重写

以下内容引用自http://wiki.jikexueyuan.com/project/java/overriding.html: 如果一个类从它的父类继承了一个方法,如果这个方法没有被标记为final ,就可以对这个方法进行重写. 重写的好处是:能够定义特定于子类类型的行为,这意味着子类能够基于要求来实现父类的方法. 在面向对象编程中,覆盖方法意味着去重写已经存在的方法. 示例: 来看以下的例子: class Animal{ public void move(){ System.out.prin

java中为什么重写equals时必须重写hashCode方法?

在上一篇博文Java中equals和==的区别中介绍了Object类的equals方法,并且也介绍了我们可在重写equals方法,本章我们来说一下为什么重写equals方法的时候也要重写hashCode方法. 先让我们来看看Object类源码 /** * Returns a hash code value for the object. This method is * supported for the benefit of hash tables such as those provided

java中的重写和重载

重写 在java中有很多的继承,继承下来的有变量.方法.在有一些子类要实现的方法中,方法名.传的参数.返回值跟父类中的方法一样,但具体实现又跟父类的不一样,这时候我们就需要重写父类的方法,就比如我们有一个类叫做Animals,Animals类中有一个叫做Call,然后我们继承Animals又生成了Cat类和Dog类,Cat和Dog也分别有自己特别的叫声,程序如下: 1 class Animals { 2 public void call() { 3 System.out.println("啊啊啊

java中子类重写父类方法的思想本质

java语言中,在子类中定义与父类同返同名同参的方法将会出现"重写(覆写)",子类将屏蔽父类的相同方法,调用子类的方法将不会调用到父类的该方法. 许多初学者也许会被"覆写"一词迷惑,以为覆盖掉了父类的方法,其实这两种方法是同时独立存在的,只是子父类调用该方法的入口不一样,彼此互不干扰. 1 /* 2 需求:设计一个简单的java程序,证明子类重写父类方法的过程 3 思路: 1.创建父类对象,通过父类对象调用该方法 4 2.创建子类对象,通过父类对象调用该方法 5 3

Java中方法重写的应用

方法重写的应用 当子类需要父类的功能,而功能的主体子类还有自己特有的内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类自己特有的内容. 1 /* 2 方法重写:子类中出现了和父类中方法声明一模一样的方法(方法名.参数列表和返回值类型都一样),也被称为方法覆盖.方法复写. 3 4 方法重载:本类中出现的方法名一样,参数列表不同,与返回值无关的方法. 5 6 子类的成员方法名称和父类中的成员方法名称一样时,这个怎么访问呢? 7 通过子类对象访问一个成员方法的查找顺序: 8 1.在子

Java中方法重写的两个面试题

1:方法重写和方法重载的区别?方法重载能改变返回值类型吗? 方法重写: 在子类中,出现和父类中一模一样的方法声明的现象.(包含方法名.参数列表和返回值类型都一样) 方法重载: 同一个类中,出现的方法名相同,参数列表不同,与返回值类型无关的现象. 方法重载能改变返回值类型,因为它和返回值类型无关. Override:方法重写 Overload:方法重载 2:this关键字和super关键字分别代表什么?以及他们各自的使用场景和作用. this: 代表当前类的对象引用. super:代表父类存储空间

java中方法重写的规则

规则1:重写方法的不能比被重写的方法有更严格的访问限制 规则2:相同的方法名,相同的参数列表,相同的返回值 规则3:重写方法不能抛出比被重写方法声明更广的异常,可以抛出范围更小的或不抛出异常 规则4:不能重写被final修饰的方法 规则5:如果一个方法不能被继承,则不能被重写.例如:构造器不能被继承,所以不能被重写.或者是父类声明为private的方法

java中的继承与oc中的继承的区别

为什么要使用继承? 继承的好处: (1)抽取出了重复的代码,使代码更加灵活 (2)建立了类和类之间的联系 继承的缺点: 耦合性太强 在OC中的继承是: 1.OC中不允许子类和父类拥有相同名称的成员变量名:(java中是可以的) 2.编译器从上往下执行,所以在子类前面至少应该要有父类的声明:如 @interface Worker : Person @end 3.OC中的子类可以拥有和父类相同名称的方法,在子类调用时,优先去自己的内部寻找,如果父类没有定义该方法,则继续在继承链上查找,直到找到为止,

【Java_基础】java中的多态性

方法的重载.重写和动态链接构成了java的多态性. 1.方法的重载 同一个类中多个同名但形参有所差异的方法,在调用时会根据参数的不同做出选择. 2.方法的重写 子类中重新定义了父类的方法,有关方法重写的规则请参考文章:Java中方法重写的注意事项. 3.动态链接 动态链接出现在父类引用指向子类对象的场景. 因为子类中有一个隐藏的引用super指向父类实例,当出现父类引用指向子类对象时,子类对象就会将其隐藏的父类实例返回给该父类引用.因此,父类引用还是指向了父类实例,而不是像表面看到的那样指向了子