JavaSE面向对象(二)

封装

  1. 属性私有 get / set
  2. public 的 get / set 方法
    //get获得这个数据
    eg : private String name;
    public String getName(){
    return this.name;
    }
    //set给这个数据设置值
    public void setName(String name){
    this.name = name;
    }
  3. IDEA快捷键 :Alt +Insert
  4. 封装的意义
    提高程序的安全性,保护数据
    隐藏代码的实现细节
    统一接口,形成规范
    系统的可维护性增加了

继承 : extends

  1. extends的意思是“扩展”,子类是父类的扩展
    Java中类只偶遇单继承,没有多继承
    子类继承了父类,就会拥有父类的全部方法
    私有方法不能继承
  2. Object类
    在java中,所有的类,都默认直接或间接继承Object
    IDEA快捷键 :Ctrl + H
  3. super
    注意点 :
    super调用父类的构造方法,必须在构造方法的第一个
    super只能出现在子类的方法或者构造方法中
    super和this不能同时调用构造方法
    和this的区别 :
    代表的对象不同
    this : 本身调用者这个对象
    super : 代表父类对象的引用
    前提
    this: 没有继承也能使用
    super : 只在有继承时使用
    构造方法
    this : 本类的构造
    super : 父类的构造
  4. Override : 重写
    重写需要继承关系,子类重写父类的方法
    方法名,参数列表必须相同,方法体不同
    修饰符 : 范围可以扩大,但不能缩小
    public >protected > Defult >private
    抛出的异常 :范围可以被缩小,但不能放大
    classNotFoundException=\Exception
    为啥要重写 :
    父类的功能,子类不一定需要,或者不一定满足
    只能重写方法,不能重写属性
    IDEA快捷键 :Alt + Insert
    静态方法和非静态的方法区别很大
    静态方法 : 方法的调用之和左边定义的类型有关
    eg:A a = new A();
    a.test();
    //父类的引用指向了子类
    B b = new A();
    子类重写父类的方法,执行子类的方法
    子类没重写父类的方法,执行父类的方法
    重写 :方法体不同 / 重载 :参数不同

多态

  1. 即同一方法可以根据发送对象的不同而采用多种不同的行为方式

  2. 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类)

  3. 多态存在的条件 :
    有继承关系
    子类重写父类的方法
    父类引用指向子类对象

  4. 多态是方法的多态,属性无多态性

  5. 上代码—(父子类中均有run()方法)
    //Student 能调用的方法都是自己的或者继承父类的
    Student s1 = new Student();
    //父类型,可以指向子类,但是不能调用子类独有的方法
    Person s2 = new Student();
    s1.run();
    s2.run();
    运行结果相同,因为子类重写父类的方法,执行子类的方法
    子类没重写父类的方法,执行父类的方法

抽象类

  1. //abstract 抽象类;类extends:单继承
    public abstract class Action{}
    // 抽象方法,只有方法名字,没有方法的实现
    public abstract void doSomeThing{}
  2. 注意 :
    不能new这个类抽象类,只能靠子类去实现它:约束!
    抽象类中可以写普通方法
    抽象方法必须在抽象类中
    抽象类的所有方法,都继承给了它的子类,所以在子类要重写它的所有方法

接口 :interface

普通类 :只有具体实现
抽象类 :具体实现和规范(抽象方法)都有
接口 :只有规范!自己无法写方法~~专业的约束

  1. 接口的本质是契约==>人的法律

  2. 命名规范 :XxxService,无方法体(无{})

  3. 上代码 :
    接口
    //interface 定义的关键字,接口都需要有实现类
    public interfaceUserService{
    //接口中的所有定义方法其实都是抽象的public abstract
    void add(String name);
    }
    实现类
    //抽象类 :extends (单继承)
    //类,可以通过implements实现接口(多接口)
    //实现了接口的类,就需要重写接口中的全部接口
    public class UserServiceImpl implements UserService
    public void add(String name){
    }

  4. 接口中定义常量默认 public static final(很少用)
    5. 实现必要重写接口中的方法

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值