标签:als 创建 过程 情况 重写 注意 alt img 赋值
当我们创建一个对象的时候,所执行的构造方法相当于初始化一个对象
Animal.java
package com.test; public class Animal { public int age = 2; public String name; public void eat() { System.out.println("动物具有吃东西的能力"); } public Animal(){ System.out.println("animal的构造方法"); age = 4; } }
Dog.java
package com.test; public class Dog extends Animal { public void eat() { System.out.println("年龄"+age+"岁的狗是可以吃东西的"); } public Dog(){ System.out.println("dog的构造方法"); } }
Initail.java
package com.test; public class Initail { public static void main(String[] args) { Dog dog = new Dog(); //dog.age = 1; dog.eat(); } }
运行Initail.java,执行结果:
animal的构造方法
dog的构造方法
年龄4岁的狗是可以吃东西的
使用final关键字做标识有“最终的”含义
在对象的内部使用,可以代表父类对象
Object类是所有类的父类,如果一个类没有extend是关键字明确标识继承另外一个类,那么这个类默认继承Object类
Object类中的方法,适合所有子类
package com.test; public class Cat extends Animal{ public int age = 2; @Override public String toString() { return "Cat [age=" + age + "]"; } }
package com.test; public class Initail { public static void main(String[] args) { Cat cat = new Cat(); System.out.println(cat); } }
如果Cat类没有重写toString(),运行结果是:com.test.Cat@2a139a55;如果Cat重写toString(),运行结果是:Cat [age=2]
package com.test; public class Cat extends Animal{ public int age = 2; @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Cat other = (Cat) obj; if (age != other.age) return false; return true; } }
如果运算符“==”两侧是引用类型数据,比较的并不是“值”本身,而是在内存的地址。
标签:als 创建 过程 情况 重写 注意 alt img 赋值
原文地址:http://www.cnblogs.com/tianxintian22/p/6523328.html