封装:
封装的概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
封装的两大原则:
1)把尽可能多的东西藏起来,对外提供便捷的接口
2)把所有的属性藏起来
封装的步骤:
1)修改属性的可见性:把属性设为private
2)创建公有的getter/setter方法:用于属性的读写
3)在getter/setter方法中加入属性控制语句:对属性值的合法性进行判断
封装的好处:
1)便于使用者正确使用系统,防止错误修改属性
2)有助于系统之间的松耦合,提高系统独立性
3)提高软件的可重用性
4)降低了构建大型系统的风险
封装的方法:
1)属性隐藏(private)
2)包机制(package)
继承:
继承的概念:子类继承父类的特性,扩展父类的功能
关键字:extends
继承的注意事项:
1)private成员不能被继承
2)构造不能继承只能调用
多态:
多态的概念:父类的引用指向子类的对象(向上转型),同一个操作,根据指向的对象不同而产生不同的结果。方法重写是实现多态的基础
java中实现多态的机制:父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定。
多态应用场景:
1)使用父类作为方法的形参(宠物看病)
2)使用父类作为方法的返回值(简单工厂模式)
拓展:
1.向上转型:父类的引用指向子类的对象,自动类型转换。此时父类的引用无法调用子类特有的方法
例如:Pet dog = new Dog();
2.向下转型:子类的引用指向父类的对象,强制类型转换。
例如:Dog d = (Dog)dog;
3.动态绑定与静态绑定:
1)实例方法(动态绑定机制):与引用变量实际引用的对象绑定.调用重写后的方法,由运行时的jvm决定
2)静态方法(静态绑定机制):与引用变量所声明的类型绑定.编译阶段绑定
3)成员变量(静态变量和实例变量,静态绑定机制):与引用变量所声明的类型绑定.编译阶段绑定