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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ztyxy1115/article/details/78770855

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("喵喵喵...");

   }

}

 

猜你喜欢

转载自blog.csdn.net/ztyxy1115/article/details/78770855