Java
WongZeffung
这个作者很懒,什么都没留下…
展开
-
覆盖Objects.equals方法
O bject类中的equals方法 源码 public boolean equals(Object obj) { return (this == obj); } Object的equals方法判断的仅仅是两个对象是否具有相同的引用,但是对于大多数类来说,这样的比较方式完全没有意义,比如实际中两个学生的学号相等,我们就认为是同个人了。 重写equals方法 1...原创 2019-03-07 22:34:00 · 191 阅读 · 0 评论 -
接口中解决默认方法冲突
如果先在一个接口中将一个方法定义为默认方法,然后又在超类或者另一个接口中定义了同样的方法,那么同时实现这两个接口的类或者既继承了超类又实现了接口的类就会发生冲突。但Java提供相应的规则: 1.超类优先。如果超类提供一个具体方法,同名而且有相同参数类型的默认方法会被忽略。 2.接口冲突。如果一个超接口提供了一个默认方法,另一个接口提供了一个同名而且参数类型相同的方法,就必须解决冲突。 例子 1...原创 2019-03-07 22:32:00 · 328 阅读 · 0 评论 -
继承中的访问域问题
1.定义两个实体,经理和雇员 public class Employee { private String name; //姓名 private double salary; //薪水 public Employee(){ } public Employ(String name,double salary){ this.n...原创 2019-03-07 22:31:00 · 83 阅读 · 0 评论 -
继承中的多态问题
相关概念 1.一个对象变量可以指示多种实际类型的现象被称为多态。在继承中的多态体现在:如果一个Employee类有三个子类,Manager,Secretary和Programmer,那么一个Employee类型的对象引用可以指示Manager或Secretary或Programmer,根据实际情况而定。 2.有一个用来判断是否应该设计为继承关系的简单规则,就是“is-a”规则,它表明子类的每个对...原创 2019-03-07 22:30:00 · 287 阅读 · 0 评论 -
Java中方法的调用过程
1.编译器查看对象的声明对象和方法名。如x.f(args)语句,假设隐式参数x声明为C类对象。这时编译器一一列举所有C类中名为f的方法和其超类中访问属性为public且名为f的方法。 2.编译器查看调用方法时提供的参数类型。这个过程称为重载解析。 3.如果是private、static、final方法或者构造器,那么编译器就可以准确知道地知道调用哪个方法,这种调用方式称为静态绑定。如果不是这几...原创 2019-03-07 22:29:00 · 540 阅读 · 1 评论