封装,继承,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也不能用于重写。 
- 
抛出异常:范围,可以被缩小,但不能扩大。 
重写:子类的方法和父类必要一致,方法体不同!
为什么需要重写:
- 
父类功能,子类不一定需要,或者不一定满足! 
- 
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号