关于对面向对象的讲解与看法
1. 对于数据域的封装
原因:1. 数据可能被篡改。 2. 它使类变得难于维护,同时容易出现错误。
1) 要封装的数据域与外界没有多大的联系,它只在对象内发挥作用,没必要参与到外界
2) 要封装的数据域在进行修改时必须要通过对象中有关方法合法的鉴定并能通过方法及时反馈给用户,避免程序出错,比如要求输入整型的数据,万一你输入char型的呢
实例:比如在类里面有非常重要的属性,如果不对它进行封装的话,很容易被非法用户进行篡改,造成对象之间的数据出错,最后导致运行结果出错。
2. 类的继承
子类从它的父类中继承可访问的数据域和方法,还可以添加新数据域和新方法。
1、 一个java类只可能直接继承自一个父类,这种限制称为单一继承。如果使用extends关键字来定义一个子类,它只允许有一个父类。多重继承是可以通过接口来实现的。
2、 继承是用来为关系建模的,也就是可以这样说,父类就是子类抽象出来的。
3、 对父类的方法在子类可以进行重写,如果父类被定义为抽象方法,则父类的方法必须进行重写。
4、 区别重写方法也就是覆盖方法与重载方法的区别。
3. 多态
1. 动态绑定:
2. 多态就意味着父类型的变量可以引用子类型的对象
3. 多态的存在条件:子类继承父类,子类对父类方法进行重写,父类引用指向子类对象。
4. 隐式转换(父类向子类转换)和显示转换(子类向父类转换(可以在父类前加子类类型))。Instanceof关键字的使用 (父类引用变量 instanceof 子类)。
5. Object 的 equals 方法
6. 数组线性表ArrayList类
7. Protected数据和方法,,防止父类元素被非子类对象访问。
8. Final关键字,防止扩展和覆盖