Java四大特征:封装、继承、多态、抽象
- 封装
把某些类的信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的某些方法来访问被隐藏的信息。封装在我看来,它的意义在于安全性问题,将一些不便公开的信息私有化,外部类需要是通过私有的类提供的方法取获取信息,执行需要完成的操作。当然我们也可以理解为一个封闭的房子里存放着物资,屋子有一个门,门上有一把锁,只有通过钥匙才可以拿出里面的物资,而钥匙就是提供给外部访问被封装的物资的方法。例如:
private Long id;
private String name;
public Long getId() {
return id;
}
//函数参数名和成员函数名重合用this区分
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
- 继承
类与类之间发生继承,子类继承父类的属性和方法,相当于实现代码的复用,所有的继承都是公开继承,子类可对父类的方法进行重写:方法体内的代码不相同。
父类
public class Father {
//final修饰子类不可继承
public final String getname(){
return "father";
}
public String say(){
return "i am father";
}
public String dosomething(){
return "father dosomething";
}
}
子类
public class Son extends Father{
//重写父类方法
public String say(){
return "i am son";
}
public String dosomething(){
return "father dosomething";
}
}
- 多态
同一个行为具有多个不同的表现形式或者形态。简单来讲就是一团面,可以揉成不同的形态做出不一样的东西,可以是面条,可以是馒头……。多态实现的方式:重写、接口、抽象类和抽象方法。 - 抽象
抽象将想象事物的实例化呈现,这就是抽象。人们所能解决问题的复杂性直接取决于抽象的类型和质量。java中使用的是抽象类,最简单的认识就是类前带有:abstract。
public abstract class Name {
public abstract void get();//抽象方法,方法体以分号结束,只有声明,不需要实现
public void send(){
System.out.println("抽象类普通方法");
}//抽象类中包含普通的方法
}
public class Call extends Name {
public void get() {//继承抽象类的子类必须重写抽象方法
System.out.println("重写抽象类方法");
}
}