Day4
1.继承
代码复用,提高开发效率和程序的扩展性。 语法:class A{} class B extends A{} 除了构造方法不能被继承其他都可以继承过来 但是,私有化成员不能直接通过子类对象直接访问 但是可以通过继承过来的公共方法间接访问
2.方法复写
@Override//注解,编译期起作用,校验代码
• public void eat() {
• System.out.println("吃猪");}
3.super
在子类中的某一个方法中需要去调用父类中被覆盖的方法, 此时得使用 super 关键字。
4.抽象方法
创建类 public abstract class xxx 抽象方法 修饰符 abstract 返回值类型 方法名(...);
5.Object类
类 Object 是类层次结构的根类,每个类都使用 Object 作为超类。
-
int hashCode() 返回对象的哈希码值。
-
boolean equals(Object obj) 根据实际业务,判断两个对象是 不是“相等”,不是直接判断==判断当前对象和obj参数是否"相等", 要比较什么类型的对象就用重写其对应类型的equals方
-
6.toString方法
toString() 方法用于返回以一个字符串表示的 Number 对象值。
如果方法使用了原生的数据类型作为参数,返回原生数据类型的 String 对象值。
如果方法有两个参数, 返回用第二个参数指定基数表示的第一个参数的字符串表示形式。
String toString()
static String toString(int i)
7.== 和 equals区别
1.== :
比较基本数据类型: 比较的就是值是否相等;
比较引用数据类型: 比较的是对象的地址是否相等
2.equals 只能用于引用类型 根据实际业务比较两个对象是否相等。默认是不重写是==比较。 在实际开发中,我们一般比较对象都是通过对象的属性值进行比较 (一般比较对象的地址没有多大用处),所以我们会覆写Object中的 此方法,把自己的判断机制写在方法里面;
8.Override与Overload的区别
Overload是重载的意思,表示在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
Override是覆盖的意思,也就是重写,它与返回值类型无关,只看参数列表。 overload用于增加程序的可 读性 (做法不同,但是做的同一事情)。
override用于提供其超级类已经提供的方法的特定实现。
overload 在相同的类范围内内执行。
override发生在两类具有继承(继承)的关系。
overload参数必须不同。 override参数必须相同。
overload 静态多态,调用的函数在编译时被选中。
override 是运行时多态性的。
overload中可以相同或不同。 但你必须改变参数。 override必须是相同的或协变的。