封装、继承和多态

总结回顾

在java的三大特性之中,基础是封装,关键是继承,核心是多态。

【封装】

  • 官方解释:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。

  • 通俗理解:把数据、函数、以及实现过程等装在一个用于存储数据的盒子中,看不见其中的具体东西,对我们来说是“透明”的,但为了使用而设定多个“小口”,也就是用通过已经定义的接口对内部数据进行访问。

【类和对象】

  • 类 :是具有相同特征(属性)和行为(方法)的对象的集合,简言之,它是具有相同类型对象的抽象,描述对象的模板。

  • 对象是客观存在的具体事物 ,在java语言中是类的实例化,通过对象去访问封装在内的数据,获得类内部的成员方法和属性。

  • 重载:发生于同一个类,方法和方法之间的一种关系。这些方法的名字是相同的,不同的是方法的参数的类型、排序以及个数。

    • 作用:当我们知道了方法的功能就可以通过传递不同的参数,去自动调用了所对应的方法。


      1. `

      public int add (int a ,int b){

          int c = a + b;
      
          return c;
      

      }

      // 重载
      public double f (double a ,idouble b,double c){

          double f = a + b + c;
      
          returnf;
      

      }

    `

【继承】

  • 官方解释:继承是指一个对象直接使用另一对象的属性和方法。

  • 通俗理解:继承是一种关系,至少是包含两个类,子类可以继承父类的方法和属性。继承只存在一对多,而不存在多对一(一个子类只能有一个父类)。

  • 重写:子类方法和父类方法之间的一种关系。

    • 作用: 父类有一个getMoney方法,子类也有getMoney方法,但子类还需要不同于父类方法的功能,这时就需要重写。简言之,就是具有相同方法名(参数类型、排序、个数相同),方法体不一样。

`

    class Father{               //父类
        public String house = "别墅";
        public int money;
        public Father(){    

        }
        public void datePerson( ){      // 父类的成员方法
            System.out.println("老爸的约会史");
        }

}

    class  Son extends Father{      //子类继承父类
        public String  business ;

        public String getBusiness() {
            return business;
        }

        public void setBusiness(String business) {
            this.business = business;
        }
        @Override      
        public void datePerson(){    // 重写的实现
            System.out.println("儿子开始约会");
        }

    }

`

【多态】

  • 见词知义,即为“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态(编译运行时,相同的方法具有不同的行为)。
  • 实现多态的技术:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
  • 实现多态的思想:接口、方法的重载和方法的重写。

【接口】

  • 定义:Java的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

  • 通过具体例子来体会多态

`

public class Test_Polymorphism {

/**
 *品酒看多态
 */
public static void main(String[] args) {


    TureWords xifenwine = new Xifenwine();              // 实现多态
    TureWords jiangxiaobai = new Jiangxiaobai();        // 西凤酒和江小白都是酒的一种


    String s=xifenwine.say("喝醉了");
    System.out.println(s);
    jiangxiaobai.say("要倒了");

    }

}

interface TureWords {                   // 定义接口:酒后吐真言
    public String say (String words);   //不需要方法体
}

class Xifenwine implements TureWords{   // 实现接口
    public String say (String words){
        System.out.println("西凤酒好喝呀!");
        return "xfj";
    }
}

class Jiangxiaobai implements TureWords{


    public String say(String words) {
        System.out.println("江小白喝着也不错");
        return "jxb";
    }


}

`

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值