1.封装
所谓封装,就是把一个对象私有化,同时提供给外界访问该属性的方法。
新建一个学生类Son,通过private修饰年龄和名字就是将对象私有化,同时又提供get和set方法供外界使用。
优点:提高了安全性和代码的复用性;隐藏了内部细节;
public class Son {
private Integer age; //年龄
private String name; //名字
@Override
public Integer getAge() {
return age;
}
@Override
public void setAge(Integer age) {
this.age = age;
}
@Override
public String getName() {
return name;
}
@Override
public void setName(String name) {
this.name = name;
}
}
2.继承
所谓继承就是使用已经存在的类作为基础建立新的类。子类拥有父类的所有属性和方法,除了私有的,子类也可以拥有自己的属性和方法。
定义一个父类Father,使Son继承Father,子类和父类都有姓名和年龄,但是儿子没有工资,是父类独有的,不给外界提供访问方法。同理,父类和子类都可以吃饭,但是工作是父类独有的,子类也可以有自己的方法,如上学。
特点:提高了代码的复用性;只支持单继承和多层继承
//子类
public class Son extends Father {
private Integer age; //年龄
private String name; //名字
public void school(){
System.out.println("上学......");
}
@Override
public Integer getAge() {
return age;
}
@Override
public void setAge(Integer age) {
this.age = age;
}
@Override
public String getName() {
return name;
}
@Override
public void setName(String name) {
this.name = name;
}
}
//父类
public class Father {
private Integer age; //年龄
private String name; //名字
private double salary; //工资
public void eat(){
System.out.println("吃饭.....");
}
private void work(){
System.out.println("工作........");
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
//测试
public class Test {
public static void main(String[] args) {
Son son=new Son();
son.eat();
son.school();
}
}
3.多态
所谓多态就是指同一个行为具有多个不同表现形式或形态的能力,可以通过继承和接口方式实现。比如动物都有吃的行为,但是猫吃小鱼干,狗吃小骨头,兔子吃青草。
新建一个接口Animal,定义一个eat方法,然后定义猫和狗两个类,实现接口,重写Animal中的eat方法,让他们自己表达自己特有的行为。
public interface Animal {
public void eat();
}
class Dog implements Animal{
@Override
public void eat() {
System.out.println("吃小骨头..........");
}
}
class Cat implements Animal{
@Override
public void eat() {
System.out.println("吃小鱼干..........");
}
}