一、封装性
将类的属性和方法封装起来,具体体现在使用private修饰类的属性,提供getter、setter方法暴露属性。
创建People类(父类)
public class People {
private String name;
private Integer age;
private String sex;
public Integer weight;
public People() {
}
public People(String name, Integer age, String sex,Integer weight) {
this.name = name;
this.age = age;
this.sex = sex;
this.weight = weight;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Integer getWeight() {
return weight;
}
public void setWeight(Integer weight) {
this.weight = weight;
}
public void say(){
System.out.println("人类诞生了!");
}
}
可以看到,用private修饰的属性只能通过getter取值和setter赋值,而使用public修饰的weight是可以直接设置值的。
二、继承性
通过extends关键字,子类继承父类,拥有父类的属性和方法。可对父类的方法进行重写。
创建Man类(子类)
public class Man extends People{
@Override
public void say() {
System.out.println("我是男的,我得挣钱买房娶老婆");
}
}
创建Man类,继承People类,没有声明其他属性,只重写了父类的say方法。
我们在测试类中创建一个Man对象,调用say方法,可以看到是重写的say方法。
三、多态性
主要体现在向上转型,使父类具有子类的方法。
向上转型,调用say方法,还是走的子类方法。
以上是本人对Java三大特性的理解,有任何疑问或意见评论区理性讨论。