面向对象(1)

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去实现一个接口中部分方法
原文地址:https://www.cnblogs.com/ma1998/p/11425345.html