2.2、Java的四个基本特性

 

大纲:0.0、android学习笔记_大纲

源码地址:https://github.com/ldy1993/ToolforAS.git

  • 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。  

具体就是我们代码里面的抽象类。用abstract修饰

  • 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段。 

如下,用extends来继承

  •  封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口。 

如下,定义用interface,使用用implements

  • 多态性是指允许不同子类型的对象对同一消息作出不同的响应。 

  • 多态的理解(多态的实现方式) 

    • 方法重载(overload)实现的是编译时的多态性(也称为前绑定)。 

    • 方法重写(override)实现的是运行时的多态性(也称为后绑定)。运行时的多态是面向对象最精髓的东西。 

    • 要实现多态需要做两件事:

1). 方法重写(子类继承父类并重写父类中已有的或抽象的方法);

2). 对象造型(用父类型引用引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)。 

举一个简单的例子,

  • //鸟基类
    public abstract class Bird {
        /**
         * 鸟类翅膀数量,数据抽象;
         */
        int windNub=2;
        /**
         * 鸟类吃方法,行为抽象;
         */
        abstract void eat();
    }
    //老鹰子类,extends Bird 的基类
    public class Eagles extends Bird {
        public String name="老鹰";
        /**
         *  重写
         */
        @Override
        void eat() {
            Log.i("ldy","吃肉");
        }
        /**
         *  重载
         */
        void eat(String type) {
            Log.i("ldy","中的"+type+"吃腐肉");
        }
    }
    //麻雀子类
    public class Spadger extends Bird {
        public String name="麻雀";
        @Override
        void eat() {
            Log.i("ldy","吃素");
        }
    }
        //测试类
        Eagles eagles=new Eagles();
        Log.i("ldy",eagles.name+"有"+eagles.windNub+"翅膀");
        eagles.eat();
        eagles.eat("秃鹰");
    
        Spadger spadger=new Spadger();
        Log.i("ldy",spadger.name+"有"+spadger.windNub+"翅膀");
        spadger.eat();

    得到的结果 

     

  •  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值