封装,继承,Super详解,方法重现
1.封装定义:
该露的露!该藏的藏。我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。
封装(数据得隐藏)
记住这句话就够了:属性私有,get/set
package com.oop.demo4;
import com.oop.demo4.Student;
/**
*1.提高程序安全性,保护数据
* 2.影藏代码得实现细节
* 3.统一接口
* 4.系统可维护性增加
*/
public class Application {
public static void main(String[] args) {
Student s1= new Student();
s1.setName("你好");
System.out.println(s1.getName());
s1.setAge(20);
System.out.println(s1.getAge());
}
}
package com.oop.demo4;
//类 private私有
public class Student {
// 名字
private String name;
// 学号
private int id;
// 性别
private String sex;
// 年龄
private int age;
// 提供一些可以操作这个属性得方法
// 提供一些public得get/set方法
//获取值
public String getName(){
return this.name;
};
//设置值
public void setName(String name){
this.name=name;
}
// alt + insert
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if(age>120 || age<0){
this.age=3;
}else{
this.age = age;
}
}
}
2.继承
-
继承本质是对某一批类得抽象,实现更好得建模。
-
extends的意思是“扩展”。子类是父类扩展。
-
JAVA中类只有单继承,没有多继承!一个儿子只能继承一个,一个父可以有多个儿子。
-
继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。
-
继承关系的俩个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。子类和父类之间,从意义上讲应该具有"is a"的关系.
-
ctrl+h(明确继承关系)
-
在JAVA中,所有的类,都默认直接或者间接继承Object
3.super详解
super方法用于当子类的属性名和父类的属性名一样时候。用super.父类属性名,获取父类属性,或者调用父类方法。private的属性无法用super调用
super调用必须在构造器的第一行。
注意点:
-
super调用父类的构造方法,必须在构造方法的第一个。
-
super必须只能出现在子类的方法或者构造方法中!
-
super和this不能同时调用构造方法!
super和this的不同
-
代表对象不同:this:本身调用者这个对象。super:代表父类对象的应用。
-
前提:this:没有继承也可以使用。super:只能在继承条件才可以使用。
-
构造方法:this():本垒的构造;super():父类的构造。
4.方法重现
前提:需要有继承关系,子类重写父类的方法!
-
方法名必须相同。
-
参数列表必须相同。
-
修饰符:范围可以扩大,但是不能缩小public>protected>default>private。static也不能用于重写。
-
抛出异常:范围,可以被缩小,但不能扩大。
重写:子类的方法和父类必要一致,方法体不同!
为什么需要重写:
-
父类功能,子类不一定需要,或者不一定满足!
-
Alt+insert:override