目录
1.封装
概念: 将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。 在程序上,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。
好处: 减少耦合 类内部的实现可以自由地修改 类具有清晰的对外接口
目的:增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。
封装的步骤
1.修改属性的可见性,设为private
public class pet {
// 创建属性并修改可见性
private String name;
private int age;
}
2.创建get/set方法 – 用于属性读写
// 创建get方法
public String getName() {
return name;
}
// 创建set方法
public void setName(String name) {
this.name = name;
2.继承
概念:在JAVA中,继承机制规定,子类可以拥有父类的所有属性和方法,也可以扩展定义自己特有的属性,增加新方法和重新定义父类的方法(覆盖/重写)。 父类也叫基类或超类;子类也叫派生类
继承的五个要点: 1)子类拥有父类所有属性和方法(私有的成员没有“访问权”,但具有“拥有权”) 2)子类具有自己所特有的属性和方法,即子类可以扩展父类没有的属性和方法。 3)子类还可以以自己的方式实现父类的功能(方法覆盖/重写) 4)构造方法不能被继承,只能被调用。在Java中,使用super关键字调用。 5)在JAVA中,只支持单一继承,即一个子类只能拥有一个父类
条件:当两个类之间具备“is-a”的关系时,就可以考虑用继承
优点:实现代码的重用性和扩展性。继承使得所有子类公共的部分都放在父类,使得代码得到了共享,这就避免了重复;另外,继承可使得修改或扩展继承而来的实现较为容易。
缺点:继承显然是一种类也类之间强耦合的关系。父类变,则子类不得不变。
使用继承
1.编写父类
class pet {
//公共属性和方法
}
2.编写子类,继承父类
class dog extends pet {
//子类特有的属性和方法
}
class cat extends pet {
//子类特有的属性和方法
}
3.多态
概念:多态表示不同的对象可以执行相同的动作,但要通过它们自己的实现代码来执行。 多态的三个要素: 1)继承/实现 2)重写:各子类以自己的方式来实现 3)子类实例化父类对象或实现类实例化接口对象
作用: 应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。 派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。 //多态的真正作用,以前需要用switch实现
使用多态实现思路
1.编写父类
class Pet {
//吃东西
public void eat(){
}
}
2.编写子类,子类重写父类方法
class Dog extends Pet {
//重写父类方法
public void eat(){
System.out.println("吃骨头");
}
}
3.运行时使用父类类型,子类对象
class cat extends Pet {
//向上自然转型
Pet pet = new Dog();
}