Java三大特性
封装简介
封装其实就是针对类属性的私有化(封装),即属性私有。同时向外部提供公有的set和get方法。实际操作中,当实例化类之后给某一个属性赋值的时候,调用set方法内部可以添加安全性检查,规避一些不合法的属性赋值(比如:Person类实例化后给年龄赋值 999等)
封装的作用
-
提高程序的安全性,保护数据
-
隐藏代码的实现细节
-
统一接口
-
提高系统的可维护性
public class Student {
// 属性私有 private关键字
private String name;
private int age;
private String sex;
// 提供一些可以操作这些属性的公共方法
// public get and set
public int getAge() {
return age;
}
public void setAge(int age) {
if (age > 120 || age < 0) {
this.age = 3;
} else {
this.age = age;
}
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
继承简介 (extends)
Java中类是对具体事物的抽象,提取某一类事物的共有属性和方法
继承其本质是对某一批类的抽象,从而实现对现实世界更好的建模
Java中只有单继承,没有多继承
继承是类与类之间的关系
继承关系的两个类,一个是子类(派生类),一个是父类(基类),子类继承父类,使用关键字extends表示
子类和父类之间,从意义上来讲应该具有“is a”的关系(如:Student is a Person)
在Java中,所有的类都默认直接或者间接继承Object类
super关键字
-
子类构造方法中使用super()调用父类的构造方法,super()必须放在第一行
-
super必须只能出现在子类的方法或者构造方法中
-
在构造方法中不能同时调用super() 和 tis(),因为都要求放在方法的第一行 (Call to 'super/this()' must be first statement in constructor body)
super和this的区别
代表的对象不同
this:本身调用者这个对象
super:代表父类对象的引用
前提
this:没有继承也可以使用
super:只能在继承条件下才可以使用
构造方法
this():本类的构造方法
super():父类的构造方法
方法重写
前提:需要有继承关系,其本质是子类重写父类的方法
-
方法名必须相同
-
参数列表必须相同
-
修饰符:范围可以扩大,但不能缩小 public > protected>default>private
-
抛出的异常:范围可以缩小,但不能扩大
重写:子类的方法和父类必须一致,方法体不同
为什么重写:父类的功能,子类不一定需要,或者不一定满足
多态
一个对象的实际类型是确定的,但可以指向对象的引用类型有很多(父类、有关系的类)
Student extends Person
Student s1 = new Student();
Person s2 = new Student();
多态存在的条件
-
有继承关系
-
子类重写了父类的方法
-
父类引用指向子类对象
注意:多态是方法的多态,属性没有多态性
instanceof关键字
判断对象和类之间是否存在继承关系
Java中引用类型转换
-
子类转父类,可以直接转换 Person person = new Student()
-
父类转子类,需要强制转换 Student student = (Student)new Person()
-
浙公网安备 33010602011771号