Java中面向对象的封装,继承,重载重写

Java中面向对象的封装,继承,重载重写

封装的定义

    封装从字面意思理解就是包装,专业说法就是隐藏信息,是指将数组和对数据的操作封装在一起,尽可能的隐藏细节,只保留对外的通道使之与外部发生关联。也就是说,用户是无法知道对象内部的细节,但是可以通过该对象对外提供的访问通道来访问该对象。

封装的特点

把类的属性隐藏,提供公共方法对其访问

提高了代码的复用性

提高了代码的安全性

 

示例:银行存钱

 

 

 

 

继承

继承的定义

Java中使用extends关键字实现类的加载机制称之为继承,子类自动拥有了基类(也叫父类,superclass)的所有非私有成员,即成员变量和成员方法

继承的好处

引入继承可以减少重复的代码量,提高代码和开发的效率

 

继承需注意的点

如果父类中的变量是private私有变量,那么子类中就不可以调用父类中的变量,只能在父类的方法中调用,子类和其他类都不可以。

Java只支持单继承,不支持多继承,即:一个子类只有一个父类(基类)。

子类对象包含父类对象

静态方法是不可以继承的

 

示例:自行车和公路赛

自行车类

public classBike {

 

   public int wheels= 2; //轮子数量

  

   public voidrun(){

      System.out.println("自行车都能跑");

   }

}

变速自行车类

public classRaceBike extends Bike {

 

   public int gear= 2; // 齿轮个数

 

   public voidspeedUp() {

      System.out.println("变速自行车可以加速");

   }

 

   public voidspeedDown() {

      System.out.println("变速自行车可以减速");

   }

}

测试类

public classTest {

 

   public static voidmain(String[] args) {

      RaceBike bike= new RaceBike();

      int wheels= bike.wheels;//获取父类的成员变量wheels

      int gears= bike.gear;

      System.out.println("变速车的轮子数量是:"+ wheels);

      System.out.println("变速车的齿轮数是:"gears);

      bike.run(); //调用父类的跑的方法

      bike.speedUp();

      bike.speedDown();

   }

}

 

重载

重载的定义

方法的重载是指同一个类里同一个方法不同参数,在测试类里通过调用同方法,给予不同的参数,方法的重载即:同名不同参

其中参数不同指的是参数类型或者是参数个数不同,

构造方法也可以重载

示例:

public classStudent {

 

   public voidintro(String name) {

      System.out.println("我叫"+ name);

   }

 

   public voidintro(int age){

      System.out.println("我今年"+ age + "");

   }

 

   public voidintro(String name, int age){

      System.out.println("我叫"+ name + "今年"+ age + "");

   }

}

 

 

重写

方法重写的定义

方法重写是基于继承,子类继承父类,子类可以调用父类的方法,同时子类也可以重写父类的方法,实现与父类不同的业务逻辑。子类与父类的方法,相同方法名,相同的参数类型,相同的参数。这样调用子类的方法时,父类的方法就会被覆盖。即:同名又同参

 

 

示例:动物会叫,叫声各不相同

动物类

public classAnimal {

 

   public voidspeek(){

      System.out.println("动物都会叫");

   }

}

狗类,继承自动物类

classDog extends Animal {

  

   /**

    * 重写父类的speek方法

    */

   @Override

   public voidspeek() {

      System.out.println("旺旺旺...");

   }

}

猫类,继承自动物类

classCat extends Animal {

  

   /**

    * 重写父类的speek方法

    */

   @Override

   public voidspeek() {

      System.out.println("喵喵喵...");

   }

}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值