1.对象的比较
==和equals: == :比较两个变量的值是否相等。比较两个引用类型的内存地址是否相等,即是否指向同一对象。 eqeal():比较两对象内容是否一致
2.抽象类
抽象类是一种模板模式,为所有子类提供了一个通用模板,子类可以在这个模板基础上金乡扩展。 通过抽象类,可以避免子类设计的随意性。通过抽象类,我们可以做到严格限制子类的设计,使子类的设计更加通用。 eg: abstract class Animal{ void shut();//抽象方法没有方法体! } class Dog extends Animal{ void shut() {//必须重写父类的抽象方法否则编译通不过 System.out.println("汪汪汪!"); } } • 要点: • 抽象方法和抽象类均必须用abstract来修饰。 • 抽象方法没有方法体,只需要声明不需实现。 • 有抽象方法的类只能定义能抽象类 • 相反抽象类里面的方法不一定全是抽象方法,也可能没有抽象方法。 • 抽象类可以包含属性、方法、构造方法。 • 抽象类不能实例化,及不能用new来实例化抽象类,只能用来被子类调用。 • 抽象类只能用来继承。 • 抽象方法必须被子类实现。抽象类的子类必须覆盖所有的抽象方法才能被实例化,否则还是抽象类3.接口 interface
• 什么是接口?• 接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离。• 接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能…”的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你好人,则必须干掉坏人;如果你是坏人,则必须欺负好人。• 接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守 。•接口的规则• 接口中所有方法都是抽象的。• 即使没有显式的将接口中的成员用public标示,也是public访问类型的• 接口中变量默认用 public static final标示,所以接口中定义的变量就是全局静态常量。• 可以定义一个新接口,用extends去继承一个已有的接口• 可以定义一个类,用implements去实现一个接口中所有方法。• 可以定义一个抽象类,用implements去实现一个接口中部分方法