总结篇(1)---复用类

复用类: 

  • 复用代码的类

 

一、复用类使用(有三种方式):


  1. 组合语法 : 将对象引用置于新类中即可.
  2. 继承 : 采用继承实现.
  3.  代理 : 想复用类的代码,但又不想暴露太多的内容.
**组合语法示例**

    class Soap {
        private String s;
        public Soap() {
            System.out.println("Soap()");
        }
    }

    public class Bath {
        private Soap castille;

        public Bath() {
            System.out.println("Inside Bath()");
            castille = new Soap();
        }

        public String toString() {
            return "castille=" + castille;
        }
    }
 **继承示例**

        还是沿用上面的 Soap 方法
        public class Bath extends  Soap{
            public Bath() {
                super();
                System.out.println("Inside Bath()");
            }
        }

 

**代理示例**
    
    //定义接口
    public class SpaceShipControls{
        void up(int velocity){}
        void down(int velocity){}
    }
    
    //实现接口的类
    public class SpaceShip extends SpaceShipControls{
        private String name;
        public SpaceShip(String name){this.name = name;}
        public String toString(){return name;}
        public static void main(String[] args){
            SpaceShip protector = new SpaceShip(“NSEA Protector”);
            protector.up(100);
        }
    }
    
    //代理
    public class SpaceShipDelegation{
        private String name;
        private SpaceShipControls controls = new SpaceShipControls();
    
        public SpaceShipDelegation(String name){
            this.name = name;
        }
    
        public void up(int velocity){
            controls.up(velocity);
        }
    
        public void down(int velocity){
            controls.down(velocity);
        }
    
        public static void main(String[] args){
            SpaceShipDelegation protector =  new SpaceShipDelegation(“NSEA protector”);
            protector.down(100);
        }
    }


二、详细讲解


  1.  语法组合,没什么好讲的
  2.  代理,没什么好讲的
  3.  继承,讲一下

继承原理

 

        通过看图我们知道,当子类继承父类,会继承父类中的方法表以及方法等。当子类执行父类代码的时候,会通过寻址,找到其父类的代码区,并执行其中的代码。
        



    关于重写父类方法:
        1.如果子类重写父类的方法(如图中C类重写父类中的A1、B1方法),重写的方法不是静态方法的话,一般都会在子类中覆盖父类的方法,并将该方法的指针指向新的地址。
        2.子类中如果定义了相同名称的静态方法,并不会重写,而应该是在内存中又分配了一块给子类的静态方法,没有重写这一说。(父类的静态方法不能被子类重写,即使你写一个跟父类相同名称的静态方法,也只是在子类中创建一个新的静态方法)
        因为静态方法从程序开始运行后就已经分配了内存,也就是说已经写死了。所有引用到该方法的对象(父类的对象也好子类的对象也好)所指向的都是同一块内存中的数据,也就是该静态方法。

 


更多java基础总结:

总结篇(1)---复用类

总结篇(2)---多态

总结篇(3)---内部类 (1)内部类的基本概念

总结篇(4)---内部类 (2)内部类之静态内部类

总结篇(5)---内部类 (3)内部类之成员内部类

总结篇(6)---内部类 (4)内部类之局部内部类

总结篇(7)---内部类 (5)内部类之匿名内部类

总结篇(8)---序列化

总结篇(9)---字符串及基本类 (1)字符串及基本类之基本数据类型

总结篇(10)---字符串及基本类 (2)字符串及基本类之java中公共方法及操作

总结篇(11)---字符串及基本类 (3)String对象

总结篇(12)---字符串及基本类 (4)Integer对象

总结篇(13)--- Java注解及元注解

总结篇(14)---JVM(java虚拟机) (1)JVM虚拟机概括

总结篇(15)---JVM(java虚拟机) (2)类加载器

总结篇(16)---JVM(java虚拟机) (3)运行时数据区

总结篇(17)---JVM(java虚拟机) (4)垃圾回收

总结篇(18)---JVM(java虚拟机) (5)垃圾回收算法

总结篇(19)---JVM(java虚拟机) (6)JVM调优

总结篇(20)---反射

总结篇(21)---Java IO

总结篇(22)---Java 进程

总结篇(23)---Java线程及其相关(1)线程介绍

总结篇(24)---Java线程及其相关(2)多线程及其问题

总结篇(25)---Java线程及其相关(3)线程池及其问题

总结篇(26)---Java线程及其相关(4)ThreadLocal

总结篇(27)---Java并发及锁(1)Synchronized

总结篇(28)---Java并发及锁(2)Volatile

总结篇(29)---Java并发及锁(3)Lock

总结篇(30)---Java并发及锁(4)常见锁及分类

总结篇(31)---JUC工具类(1)CountDownLatch

总结篇(32)---JUC工具类(2)CyclicBarrier

总结篇(33)---JUC工具类(3)Semaphore

总结篇(34)---JUC工具类(4)Exchanger

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sun cat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值