面向对象的三大特性:封装,继承与多态。
面向对象是一种编程范式,它的主要思想是将现实世界中的实体抽象成对象,并通过定义对象的属性和行为来描述其特征和功能。
封装
封装是指将数据和方法封装在一个类中,并对外部隐藏内部实现细节,只提供公共接口供其他类进行访问。这样可以加强安全性、简化使用方式,并提高代码的可维护性。例如人类里面有姓名、性别等属性。
public class People{
private String name;//姓名
prublic int sex;//性别
}
根据阿里编码规约,一般对象中的属性使用私有属性,这些属性只在当前类的内部可见,对外部不可见。
另外还有getter和setter方法,当属性被private封装后,类中需要提供getter和setter方法来控制私有属性被外部访问,类的外部通过访问这两种方法来使用私用属性。
权限修饰符不写就是包访问权限,被修饰的对象仅在包内部可见,只有在同级目录下的类之间可见,子包也不可见。
继承
继承是指通过定义一个新类来继承已有类的属性和方法。被继承的类称为父类或超类,新定义的类称为子类或派生类。通过继承,子类可以拥有父类的属性和方法,并可以在此基础上进行扩展或重写。
public class Student extend People{
private String stuNum;//学号
}
此时学生类已经继承了人类里面的public型的属性,所以在编码时,一般都是将所有共性的内容放在父类,子类只需要关注子类独有的属性和功能即可。注意此时父类的private的属性不能被继承,只能通过公共的方法(如Getter和Setter方法)来访问和修改私有变量。
通过子类对象访问方法时,若子类中存在一样的方法,则优先访问子类的方法,若子类里没有就调用父类的方法,属性也如此。
参数不一样时,则看谁的参数匹配。
super修饰符表示直接从父类中寻找成员变量或成员方法,private修饰的无法被调用。
多态
多态是指同一种操作可以作用于不同类型的对象,并根据对象的实际类型来执行不同的操作。多态可以提高代码的灵活性和扩展性,使得同一段代码可以适应不同类型的对象。
多态的实现必须依赖继承,在继承体系下才有多态。比如多个子类继承同一个父类时,对于父类的同一个方法,不同的子类可以有不同的改造实现。
向上转型是指将子类的实例赋值给父类类型的变量。
向下转型是指将父类的实例赋值给子类类型的变量,并不是所有的对象都可以向下转型,只有当这个对象原本就是子类对象通过向上转型得到的时候才能够成功转型,即要发生向下转型,必须先发生向上转型,并需要强制类型转换。
People people = new Student ();
Student student = (Student) people ;
拓展:
final修饰符
方法不可被重写
类不可被继承
变量引用不可改变