【java学习笔记】封装、继承、多态

一、封装

1.定义
  • 将事物抽象成一个类,外表表示一个对象,隐藏对象内部属性动作等相关细节,仅对外公布接口。
  • 属性私有关键字: private(私有的)
  • get(获取) 、 set(设置值)

2.封装的意义:
  1. 提高代码安全性(禁止直接访问一个对象中数据的事迹表示,而是通过接口来访问)
  2. 隐藏细节
  3. 统一接口
  4. 提高系统维护性
eg:比如手机充电接口,只需要知道插上 typ-c 手机就能充电,不需要知道其充电实现的原理
3.例子:
public class Demo05_encapsulation 

   //    属性设置为 私有 --> private
   private String name;//姓名
   private String id;//学号
   private int age;//年龄

//    get获取这个属性
//    提供一个公共的方法区获取(输出)这个值
   public String getName(){
        return this.name;
   }
//    set给这个属性设置值
//      一个输入值的方法
   public void setName(String name){
       this.name=name;
   }


   public String getId(){
       return this.id;
   }
   public void setId(String id){
       this.id = id;
   }
   
   
   public int getAge(){
       return this.age;
   }
   public void setAge(int age){
       if (age>150 || age<0){  //用于判断输入值的合法性!
           this.age =3;
       }else{
           this.age= age;
       }
   }
}

//---------------------------------------分割线---------------------------------------------
   public static void main(String[] args) {
       Demo05_encapsulation s =new Demo05_encapsulation();

       s.setId("001"); //输入一个值“001”
       System.out.println(s.getId()); // 获取这个值

       s.setName("hxc");
       System.out.println(s.getName());

       s.setAge(20);
       System.out.println(s.getAge());

   }

二、继承

  • 主要内容:继承的含义、方法重写
  • 会用到的关键字:object、super
1.定义
  • 在人类社会中,继承的含义是子女获得了父辈的财产,
    同时在java的世界中是 借用现有类中的方法删删改改 变成一个新的类

  • 优点: 通过继承可以减少代码的使用量,降低冗余,便于阅读等布拉布拉的。
    重要的一点是可以向上转型,同时也是多态的基础

  • 继承的本质:对某一类的抽象

2.使用
  • extend “扩展”(通过extend关键字继承父类)
    • 语法: 类名1 extend 类名2 (表示:类名1中继承了类名2中全部公开属性)
    • 修饰符:default 默认的、protected 受保护的 、public 公共的、private 私有的
    • IDEA中的快捷键:ctrl +h 打开关系列表
public class Demo02 extends Demo01     //Demo02 继承了Demo01中的公共对象

    public class Demo06_inheritance_perple {
    public int money =1000000;

    public void say(){
        System.out.println("说了一句话!!!!");
    }
}
//
public class Demo06_inheritance_students extends Demo06_inheritance_perple { //···student 继承了 perple中全部对象
//
    public static void main(String[] args) {
        Demo06_inheritance_students stu =new Demo06_inheritance_students();

        stu.say();
        System.out.println(stu.money);
    }

三、多态

1.定义
  • 将同样的操作 给不同的对象,结果不同。(同样的手机给不同的人打王者,得到的段位不同 这个“不同的人”就可以理解成多态)

    注意事项:

  		1.多态是方法的多态, 属性没有多态
  		2.父类和子类有联系,但需要强制转换
  		3.存在条件:继承,重写( fathef f=new son() )
  		4.不可重写的(static 方法,final 常量 、 private私有)
2.具体操作
继承父类以后在重写父类的函数

例子:

	public class Demo09_f {
    public void run(){
        System.out.println("f_run");
    }
}
//--------------继承_f 再冲写run函数-------------------------------
    public class Demo09_s  extends Demo09_f{
    @Override
    public void run() {
        System.out.println("s_run");
    }

    public void eat(){
        System.out.println("s_eat");
    }
}
//---------------------------分割线---------------------------------------------

        Demo09_s stu_s = new Demo09_s(); //能调用自己的或者继承父类的
        Demo09_f stu_f = new Demo09_s(); //父类型,可指向子类,但不能调用子类独有的方法
        Object stu_o = new Demo09_s();

        stu_s.run();
        ((Demo09_s)stu_f).eat(); //强制转换类型

















参考信息1
参考信息2
自学内容,来源“kuangstudy.com”

你可能感兴趣的:(java基础学习心得,java,多态)